@deppon/deppon-template 2.2.1 → 2.2.2
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/LICENSE +21 -21
- package/README.md +330 -330
- package/es/index.d.ts +5 -5
- package/es/pro-dialog/index.d.ts +5 -5
- package/es/pro-field/ProField.d.ts +2 -2
- package/es/pro-field/components/DatePicker/FieldDatePicker.vue_vue_type_script_setup_true_lang.vue.js +20 -105
- package/es/pro-field/components/DatePicker/index.d.ts +2 -2
- package/es/pro-field/components/Select/index.d.ts +2 -2
- package/es/pro-field/components/TagInput/index.d.ts +2 -2
- package/es/pro-field/components/Text/FieldText.vue.css +7 -0
- package/es/pro-field/components/Text/FieldText.vue_vue_type_script_setup_true_lang.vue.js +11 -48
- package/es/pro-field/components/Text/index.d.ts +2 -2
- package/es/pro-field/index.d.ts +4 -4
- package/es/pro-field/utils.d.ts +16 -16
- package/es/pro-form/ProForm.vue.css +25 -0
- package/es/pro-form/ProForm.vue_vue_type_script_setup_true_lang.vue.js +15 -3
- package/es/pro-form/index.d.ts +4 -4
- package/es/pro-layout/index.d.ts +4 -4
- package/es/pro-table/index.d.ts +4 -4
- package/es/pro-table/types.d.ts +66 -66
- package/es/utils/arrayOperation.d.ts +25 -25
- package/es/utils/index.d.ts +5 -5
- package/es/utils/mergeProps.d.ts +2 -2
- package/es/utils/other.d.ts +25 -25
- package/es/utils/theme.d.ts +28 -28
- package/package.json +6 -6
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import ProField from './ProField.vue';
|
|
2
|
-
export default ProField;
|
|
1
|
+
import ProField from './ProField.vue';
|
|
2
|
+
export default ProField;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import '../../../_virtual/_rollup-plugin-inject-process-env.js';
|
|
2
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
4
|
-
import { ref, computed, openBlock, createElementBlock, Fragment, toDisplayString, createCommentVNode, createElementVNode, normalizeClass, createVNode, unref,
|
|
5
|
-
import {
|
|
3
|
+
import { ref, computed, openBlock, createElementBlock, Fragment, toDisplayString, createCommentVNode, createElementVNode, normalizeClass, createVNode, unref, mergeProps, renderSlot } from 'vue';
|
|
4
|
+
import { ElDatePicker } from '@deppon/deppon-ui';
|
|
6
5
|
|
|
7
6
|
var _excluded = ["placeholder", "start-placeholder", "end-placeholder"];
|
|
8
7
|
var _hoisted_1 = {
|
|
@@ -195,116 +194,32 @@ var script = {
|
|
|
195
194
|
}
|
|
196
195
|
return props.text || props.emptyText || '-';
|
|
197
196
|
});
|
|
198
|
-
|
|
199
|
-
// 格式化单个日期时间戳为字符串
|
|
200
|
-
var formatTimestamp = function formatTimestamp(timestamp, valueFormat, format) {
|
|
201
|
-
var ts = typeof timestamp === 'number' ? timestamp : Number(timestamp);
|
|
202
|
-
if (isNaN(ts) || ts <= 0) {
|
|
203
|
-
return '';
|
|
204
|
-
}
|
|
205
|
-
var date = valueFormat === 'X' ? new Date(ts * 1000) : new Date(ts);
|
|
206
|
-
if (!date || isNaN(date.getTime())) {
|
|
207
|
-
return '';
|
|
208
|
-
}
|
|
209
|
-
var year = date.getFullYear();
|
|
210
|
-
var month = String(date.getMonth() + 1).padStart(2, '0');
|
|
211
|
-
var day = String(date.getDate()).padStart(2, '0');
|
|
212
|
-
var hours = String(date.getHours()).padStart(2, '0');
|
|
213
|
-
var minutes = String(date.getMinutes()).padStart(2, '0');
|
|
214
|
-
var seconds = String(date.getSeconds()).padStart(2, '0');
|
|
215
|
-
|
|
216
|
-
// 根据 format 格式返回(简化版,支持常见格式)
|
|
217
|
-
if (format.includes('HH:mm:ss')) {
|
|
218
|
-
return "".concat(year, "-").concat(month, "-").concat(day, " ").concat(hours, ":").concat(minutes, ":").concat(seconds);
|
|
219
|
-
} else if (format.includes('HH:mm')) {
|
|
220
|
-
return "".concat(year, "-").concat(month, "-").concat(day, " ").concat(hours, ":").concat(minutes);
|
|
221
|
-
} else {
|
|
222
|
-
return "".concat(year, "-").concat(month, "-").concat(day);
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
// tooltip 的内容(使用显示的文本)
|
|
227
|
-
var tooltipContent = computed(function () {
|
|
228
|
-
// 直接从 props.text 获取原始值,而不是从 displayText(因为 displayText 可能已经转换了数组)
|
|
229
|
-
var originalText = props.text;
|
|
230
|
-
if (originalText === null || originalText === undefined || originalText === '') {
|
|
231
|
-
return '';
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
// 如果 valueFormat 是时间戳格式('x' 毫秒或 'X' 秒),需要转换为格式化字符串
|
|
235
|
-
if (props.valueFormat === 'x' || props.valueFormat === 'X') {
|
|
236
|
-
// 处理日期范围类型(数组格式)
|
|
237
|
-
if (Array.isArray(originalText) && originalText.length >= 2) {
|
|
238
|
-
var _props$fieldProps8;
|
|
239
|
-
var _originalText = _slicedToArray(originalText, 2),
|
|
240
|
-
startTimestamp = _originalText[0],
|
|
241
|
-
endTimestamp = _originalText[1];
|
|
242
|
-
var rangeSeparator = ((_props$fieldProps8 = props.fieldProps) === null || _props$fieldProps8 === void 0 ? void 0 : _props$fieldProps8.rangeSeparator) || ' - ';
|
|
243
|
-
var startDateStr = formatTimestamp(startTimestamp, props.valueFormat, props.format);
|
|
244
|
-
var endDateStr = formatTimestamp(endTimestamp, props.valueFormat, props.format);
|
|
245
|
-
if (startDateStr && endDateStr) {
|
|
246
|
-
return "".concat(startDateStr).concat(rangeSeparator).concat(endDateStr);
|
|
247
|
-
} else if (startDateStr) {
|
|
248
|
-
return startDateStr;
|
|
249
|
-
} else if (endDateStr) {
|
|
250
|
-
return endDateStr;
|
|
251
|
-
}
|
|
252
|
-
return '';
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
// 处理单个日期时间戳
|
|
256
|
-
if (typeof originalText === 'number' || typeof originalText === 'string' && !isNaN(Number(originalText))) {
|
|
257
|
-
return formatTimestamp(originalText, props.valueFormat, props.format);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
// 如果不是时间戳格式,使用 displayText(格式化后的显示文本)
|
|
262
|
-
var displayValue = displayText.value;
|
|
263
|
-
if (displayValue === null || displayValue === undefined || displayValue === '' || displayValue === '-') {
|
|
264
|
-
return '';
|
|
265
|
-
}
|
|
266
|
-
return String(displayValue);
|
|
267
|
-
});
|
|
268
|
-
|
|
269
|
-
// 不再做文本溢出检测,tooltip 始终不显示(内容自适应换行展示)
|
|
270
|
-
var shouldShowTooltip = computed(function () {
|
|
271
|
-
return false;
|
|
272
|
-
});
|
|
273
197
|
return function (_ctx, _cache) {
|
|
274
|
-
var _props$
|
|
198
|
+
var _props$fieldProps8, _displayText$value, _props$fieldProps9;
|
|
275
199
|
return __props.mode === 'read' ? (openBlock(), createElementBlock(Fragment, {
|
|
276
200
|
key: 0
|
|
277
|
-
}, [(_props$
|
|
201
|
+
}, [(_props$fieldProps8 = __props.fieldProps) !== null && _props$fieldProps8 !== void 0 && _props$fieldProps8.prefix ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(__props.fieldProps.prefix), 1 /* TEXT */)) : createCommentVNode("v-if", true), createElementVNode("span", _hoisted_2, toDisplayString((_displayText$value = displayText.value) !== null && _displayText$value !== void 0 ? _displayText$value : __props.emptyText || '-'), 1 /* TEXT */), (_props$fieldProps9 = __props.fieldProps) !== null && _props$fieldProps9 !== void 0 && _props$fieldProps9.suffix ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(__props.fieldProps.suffix), 1 /* TEXT */)) : createCommentVNode("v-if", true)], 64 /* STABLE_FRAGMENT */)) : __props.mode === 'edit' || __props.mode === 'update' ? (openBlock(), createElementBlock("div", {
|
|
278
202
|
key: 1,
|
|
279
203
|
"class": normalizeClass(["field-date-picker-wrapper", {
|
|
280
204
|
'has-error': __props.error
|
|
281
205
|
}])
|
|
282
|
-
}, [createVNode(unref(
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
return [createElementVNode("div", _hoisted_4, [createVNode(unref(ElDatePicker), mergeProps({
|
|
289
|
-
ref_key: "datePickerRef",
|
|
290
|
-
ref: datePickerRef,
|
|
291
|
-
modelValue: dateValue.value,
|
|
292
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
|
|
293
|
-
return dateValue.value = $event;
|
|
294
|
-
}),
|
|
295
|
-
type: __props.pickerType,
|
|
296
|
-
format: __props.format,
|
|
297
|
-
"value-format": __props.valueFormat,
|
|
298
|
-
clearable: true,
|
|
299
|
-
"class": "field-date-picker-input"
|
|
300
|
-
}, fieldPropsWithoutPlaceholder.value, {
|
|
301
|
-
placeholder: isRangeType.value ? undefined : placeholder.value,
|
|
302
|
-
"start-placeholder": isRangeType.value ? startPlaceholder.value : undefined,
|
|
303
|
-
"end-placeholder": isRangeType.value ? endPlaceholder.value : undefined
|
|
304
|
-
}), null, 16 /* FULL_PROPS */, ["modelValue", "type", "format", "value-format", "placeholder", "start-placeholder", "end-placeholder"])])];
|
|
206
|
+
}, [createElementVNode("div", _hoisted_4, [createVNode(unref(ElDatePicker), mergeProps({
|
|
207
|
+
ref_key: "datePickerRef",
|
|
208
|
+
ref: datePickerRef,
|
|
209
|
+
modelValue: dateValue.value,
|
|
210
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = function ($event) {
|
|
211
|
+
return dateValue.value = $event;
|
|
305
212
|
}),
|
|
306
|
-
|
|
307
|
-
|
|
213
|
+
type: __props.pickerType,
|
|
214
|
+
format: __props.format,
|
|
215
|
+
"value-format": __props.valueFormat,
|
|
216
|
+
clearable: true,
|
|
217
|
+
"class": "field-date-picker-input"
|
|
218
|
+
}, fieldPropsWithoutPlaceholder.value, {
|
|
219
|
+
placeholder: isRangeType.value ? undefined : placeholder.value,
|
|
220
|
+
"start-placeholder": isRangeType.value ? startPlaceholder.value : undefined,
|
|
221
|
+
"end-placeholder": isRangeType.value ? endPlaceholder.value : undefined
|
|
222
|
+
}), null, 16 /* FULL_PROPS */, ["modelValue", "type", "format", "value-format", "placeholder", "start-placeholder", "end-placeholder"])]), createCommentVNode(" 错误信息显示区域:支持通过 slot 自定义显示 "), __props.error ? renderSlot(_ctx.$slots, "error", {
|
|
308
223
|
key: 0,
|
|
309
224
|
error: __props.error
|
|
310
225
|
}, function () {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import FieldDatePicker from './FieldDatePicker.vue';
|
|
2
|
-
export default FieldDatePicker;
|
|
1
|
+
import FieldDatePicker from './FieldDatePicker.vue';
|
|
2
|
+
export default FieldDatePicker;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import FieldSelect from './FieldSelect.vue';
|
|
2
|
-
export default FieldSelect;
|
|
1
|
+
import FieldSelect from './FieldSelect.vue';
|
|
2
|
+
export default FieldSelect;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import FieldTagInput from './FieldTagInput.vue';
|
|
2
|
-
export default FieldTagInput;
|
|
1
|
+
import FieldTagInput from './FieldTagInput.vue';
|
|
2
|
+
export default FieldTagInput;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
.field-text-range {
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: center;
|
|
4
|
+
flex-wrap: wrap;
|
|
5
|
+
/* 允许错误信息换到下一行 */
|
|
4
6
|
width: 100%;
|
|
5
7
|
min-width: 0;
|
|
6
8
|
/* 允许在 flex 父容器内收缩,避免超出列宽 */
|
|
9
|
+
/* Element Plus Tooltip 会给 trigger 包一层容器;在 flex 下需要让它独占一行 */
|
|
7
10
|
}
|
|
8
11
|
.field-text-range .range-input-start,
|
|
9
12
|
.field-text-range .range-input-end {
|
|
@@ -25,6 +28,10 @@
|
|
|
25
28
|
font-size: 14px;
|
|
26
29
|
padding: 0 2px;
|
|
27
30
|
}
|
|
31
|
+
.field-text-range .el-tooltip__trigger {
|
|
32
|
+
flex: 0 0 100%;
|
|
33
|
+
width: 100%;
|
|
34
|
+
}
|
|
28
35
|
/* 数组文本类型样式 */
|
|
29
36
|
.field-text-array {
|
|
30
37
|
display: flex;
|
|
@@ -71,9 +71,6 @@ var _hoisted_19 = {
|
|
|
71
71
|
key: 0,
|
|
72
72
|
"class": "array-item-error"
|
|
73
73
|
};
|
|
74
|
-
var _hoisted_20 = {
|
|
75
|
-
"class": "field-text-tooltip-wrapper"
|
|
76
|
-
};
|
|
77
74
|
var script = {
|
|
78
75
|
__name: 'FieldText',
|
|
79
76
|
props: {
|
|
@@ -752,12 +749,12 @@ var script = {
|
|
|
752
749
|
var inputRef = ref(null);
|
|
753
750
|
|
|
754
751
|
// 判断是否需要使用 tooltip 包裹(始终使用 tooltip 包裹,文本超出时显示)
|
|
755
|
-
|
|
752
|
+
computed(function () {
|
|
756
753
|
return true;
|
|
757
754
|
});
|
|
758
755
|
|
|
759
756
|
// tooltip 的内容(使用 input 的实际值)
|
|
760
|
-
|
|
757
|
+
computed(function () {
|
|
761
758
|
var value = inputValue.value;
|
|
762
759
|
if (value === null || value === undefined || value === '') {
|
|
763
760
|
return '';
|
|
@@ -766,12 +763,12 @@ var script = {
|
|
|
766
763
|
});
|
|
767
764
|
|
|
768
765
|
// 不再做文本溢出检测,tooltip 始终不显示(内容自适应换行展示)
|
|
769
|
-
|
|
766
|
+
computed(function () {
|
|
770
767
|
return false;
|
|
771
768
|
});
|
|
772
769
|
|
|
773
770
|
// 传递给 input 的 props(移除 showOverflowTooltip,因为我们在外层用 tooltip 处理)
|
|
774
|
-
|
|
771
|
+
computed(function () {
|
|
775
772
|
var _ref3 = props.fieldProps || {};
|
|
776
773
|
_ref3.showOverflowTooltip;
|
|
777
774
|
_ref3.onClear;
|
|
@@ -931,7 +928,7 @@ var script = {
|
|
|
931
928
|
}, [createElementVNode("span", _hoisted_2, toDisplayString(item.label || "\u7B2C".concat(index + 1, "\u9879")), 1 /* TEXT */), createElementVNode("span", _hoisted_3, toDisplayString(item.value || __props.emptyText || '-'), 1 /* TEXT */), createElementVNode("span", _hoisted_4, toDisplayString(item.suffix || ''), 1 /* TEXT */)]);
|
|
932
929
|
}), 128 /* KEYED_FRAGMENT */)) : (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(__props.emptyText || '-'), 1 /* TEXT */))])) : isRange.value ? (openBlock(), createElementBlock(Fragment, {
|
|
933
930
|
key: 1
|
|
934
|
-
}, [createCommentVNode(" 范围输入模式下的只读显示 "), rangeStartPrefix.value && !isRangeStartEmpty.value ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(rangeStartPrefix.value), 1 /* TEXT */)) : createCommentVNode("v-if", true), createElementVNode("span", _hoisted_7, toDisplayString(rangeStartDisplay.value), 1 /* TEXT */), rangeStartSuffix.value && !isRangeStartEmpty.value ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(rangeStartSuffix.value), 1 /* TEXT */)) : createCommentVNode("v-if", true), _cache[
|
|
931
|
+
}, [createCommentVNode(" 范围输入模式下的只读显示 "), rangeStartPrefix.value && !isRangeStartEmpty.value ? (openBlock(), createElementBlock("span", _hoisted_6, toDisplayString(rangeStartPrefix.value), 1 /* TEXT */)) : createCommentVNode("v-if", true), createElementVNode("span", _hoisted_7, toDisplayString(rangeStartDisplay.value), 1 /* TEXT */), rangeStartSuffix.value && !isRangeStartEmpty.value ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(rangeStartSuffix.value), 1 /* TEXT */)) : createCommentVNode("v-if", true), _cache[6] || (_cache[6] = createElementVNode("span", {
|
|
935
932
|
"class": "range-separator"
|
|
936
933
|
}, "-", -1 /* CACHED */)), rangeEndPrefix.value && !isRangeEndEmpty.value ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(rangeEndPrefix.value), 1 /* TEXT */)) : createCommentVNode("v-if", true), createElementVNode("span", _hoisted_10, toDisplayString(rangeEndDisplay.value), 1 /* TEXT */), rangeEndSuffix.value && !isRangeEndEmpty.value ? (openBlock(), createElementBlock("span", _hoisted_11, toDisplayString(rangeEndSuffix.value), 1 /* TEXT */)) : createCommentVNode("v-if", true)], 64 /* STABLE_FRAGMENT */)) : (openBlock(), createElementBlock(Fragment, {
|
|
937
934
|
key: 2
|
|
@@ -1029,7 +1026,7 @@ var script = {
|
|
|
1029
1026
|
onWheel: _cache[1] || (_cache[1] = withModifiers(function (e) {
|
|
1030
1027
|
return handleWheel(e, rangeStartFieldProps.value);
|
|
1031
1028
|
}, ["prevent"]))
|
|
1032
|
-
}), null, 16 /* FULL_PROPS */, ["modelValue", "type", "placeholder"]), _cache[
|
|
1029
|
+
}), null, 16 /* FULL_PROPS */, ["modelValue", "type", "placeholder"]), _cache[7] || (_cache[7] = createElementVNode("span", {
|
|
1033
1030
|
"class": "range-separator"
|
|
1034
1031
|
}, "-", -1 /* CACHED */)), createVNode(unref(ElInput), mergeProps({
|
|
1035
1032
|
modelValue: rangeEnd.value,
|
|
@@ -1070,45 +1067,11 @@ var script = {
|
|
|
1070
1067
|
"class": normalizeClass(["field-text-single", {
|
|
1071
1068
|
'has-error': displayError.value
|
|
1072
1069
|
}])
|
|
1073
|
-
}, [
|
|
1074
|
-
key: 0,
|
|
1075
|
-
content: tooltipContent.value,
|
|
1076
|
-
disabled: !shouldShowTooltip.value,
|
|
1077
|
-
placement: "top"
|
|
1078
|
-
}, {
|
|
1079
|
-
"default": withCtx(function () {
|
|
1080
|
-
return [createElementVNode("div", _hoisted_20, [createVNode(unref(ElInput), mergeProps({
|
|
1081
|
-
ref_key: "inputRef",
|
|
1082
|
-
ref: inputRef,
|
|
1083
|
-
modelValue: inputValue.value,
|
|
1084
|
-
"onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
|
|
1085
|
-
return inputValue.value = $event;
|
|
1086
|
-
}),
|
|
1087
|
-
type: __props.type,
|
|
1088
|
-
clearable: true,
|
|
1089
|
-
placeholder: placeholder.value
|
|
1090
|
-
}, inputFieldProps.value, {
|
|
1091
|
-
onClear: handleClear,
|
|
1092
|
-
onWheel: _cache[5] || (_cache[5] = withModifiers(function (e) {
|
|
1093
|
-
return handleWheel(e, inputFieldProps.value);
|
|
1094
|
-
}, ["prevent"]))
|
|
1095
|
-
}), createSlots({
|
|
1096
|
-
_: 2 /* DYNAMIC */
|
|
1097
|
-
}, [_ctx.$slots.append ? {
|
|
1098
|
-
name: "append",
|
|
1099
|
-
fn: withCtx(function () {
|
|
1100
|
-
return [renderSlot(_ctx.$slots, "append")];
|
|
1101
|
-
}),
|
|
1102
|
-
key: "0"
|
|
1103
|
-
} : undefined]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "type", "placeholder"])])];
|
|
1104
|
-
}),
|
|
1105
|
-
_: 3 /* FORWARDED */
|
|
1106
|
-
}, 8 /* PROPS */, ["content", "disabled"])) : (openBlock(), createBlock(unref(ElInput), mergeProps({
|
|
1107
|
-
key: 1,
|
|
1070
|
+
}, [createVNode(unref(ElInput), mergeProps({
|
|
1108
1071
|
ref_key: "inputRef",
|
|
1109
1072
|
ref: inputRef,
|
|
1110
1073
|
modelValue: inputValue.value,
|
|
1111
|
-
"onUpdate:modelValue": _cache[
|
|
1074
|
+
"onUpdate:modelValue": _cache[4] || (_cache[4] = function ($event) {
|
|
1112
1075
|
return inputValue.value = $event;
|
|
1113
1076
|
}),
|
|
1114
1077
|
type: __props.type,
|
|
@@ -1116,7 +1079,7 @@ var script = {
|
|
|
1116
1079
|
placeholder: placeholder.value
|
|
1117
1080
|
}, __props.fieldProps, {
|
|
1118
1081
|
onClear: handleClear,
|
|
1119
|
-
onWheel: _cache[
|
|
1082
|
+
onWheel: _cache[5] || (_cache[5] = withModifiers(function (e) {
|
|
1120
1083
|
return handleWheel(e, __props.fieldProps);
|
|
1121
1084
|
}, ["prevent"]))
|
|
1122
1085
|
}), createSlots({
|
|
@@ -1127,8 +1090,8 @@ var script = {
|
|
|
1127
1090
|
return [renderSlot(_ctx.$slots, "append")];
|
|
1128
1091
|
}),
|
|
1129
1092
|
key: "0"
|
|
1130
|
-
} : undefined]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "type", "placeholder"])
|
|
1131
|
-
key:
|
|
1093
|
+
} : undefined]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "type", "placeholder"]), createCommentVNode(" 错误信息显示区域:支持通过 slot 自定义显示 "), displayError.value ? renderSlot(_ctx.$slots, "error", {
|
|
1094
|
+
key: 0,
|
|
1132
1095
|
error: __props.error
|
|
1133
1096
|
}, function () {
|
|
1134
1097
|
return [createCommentVNode(" 默认错误显示(如果没有提供 error slot) "), createVNode(unref(ElTooltip), {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import FieldText from './FieldText.vue';
|
|
2
|
-
export default FieldText;
|
|
1
|
+
import FieldText from './FieldText.vue';
|
|
2
|
+
export default FieldText;
|
package/es/pro-field/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default as ProField } from './ProField';
|
|
2
|
-
export { default as ProFieldText } from './components/Text/index';
|
|
3
|
-
export { default as ProFieldSelect } from './components/Select/index';
|
|
4
|
-
export { default as ProFieldDatePicker } from './components/DatePicker/index';
|
|
1
|
+
export { default as ProField } from './ProField';
|
|
2
|
+
export { default as ProFieldText } from './components/Text/index';
|
|
3
|
+
export { default as ProFieldSelect } from './components/Select/index';
|
|
4
|
+
export { default as ProFieldDatePicker } from './components/DatePicker/index';
|
package/es/pro-field/utils.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 获取插槽内容
|
|
3
|
-
*/
|
|
4
|
-
export declare function getSlot(slots: any, props: any, name: string): any;
|
|
5
|
-
/**
|
|
6
|
-
* 过滤 undefined 值
|
|
7
|
-
*/
|
|
8
|
-
export declare function omitUndefined<T extends Record<string, any>>(obj: T): Partial<T>;
|
|
9
|
-
/**
|
|
10
|
-
* 选择 Pro 相关属性
|
|
11
|
-
*/
|
|
12
|
-
export declare function pickProProps<T extends Record<string, any>>(obj: T): Partial<T>;
|
|
13
|
-
/**
|
|
14
|
-
* 对象转 Map
|
|
15
|
-
*/
|
|
16
|
-
export declare function objToMap<T = any>(obj: Record<string, T> | Map<string, T>): Map<string, T>;
|
|
1
|
+
/**
|
|
2
|
+
* 获取插槽内容
|
|
3
|
+
*/
|
|
4
|
+
export declare function getSlot(slots: any, props: any, name: string): any;
|
|
5
|
+
/**
|
|
6
|
+
* 过滤 undefined 值
|
|
7
|
+
*/
|
|
8
|
+
export declare function omitUndefined<T extends Record<string, any>>(obj: T): Partial<T>;
|
|
9
|
+
/**
|
|
10
|
+
* 选择 Pro 相关属性
|
|
11
|
+
*/
|
|
12
|
+
export declare function pickProProps<T extends Record<string, any>>(obj: T): Partial<T>;
|
|
13
|
+
/**
|
|
14
|
+
* 对象转 Map
|
|
15
|
+
*/
|
|
16
|
+
export declare function objToMap<T = any>(obj: Record<string, T> | Map<string, T>): Map<string, T>;
|
|
@@ -1632,3 +1632,28 @@ body .el-overlay-dialog,
|
|
|
1632
1632
|
height: 100% !important;
|
|
1633
1633
|
display: block !important;
|
|
1634
1634
|
}
|
|
1635
|
+
.pro-form-item-edit-as-readonly .el-form-item__label {
|
|
1636
|
+
justify-content: flex-start !important;
|
|
1637
|
+
text-align: left !important;
|
|
1638
|
+
width: auto !important;
|
|
1639
|
+
min-width: auto !important;
|
|
1640
|
+
max-width: none !important;
|
|
1641
|
+
flex: 0 0 auto !important;
|
|
1642
|
+
padding-right: 12px !important;
|
|
1643
|
+
}
|
|
1644
|
+
.pro-form-item-edit-as-readonly.el-form-item .el-form-item__label {
|
|
1645
|
+
width: auto !important;
|
|
1646
|
+
min-width: auto !important;
|
|
1647
|
+
max-width: none !important;
|
|
1648
|
+
flex: 0 0 auto !important;
|
|
1649
|
+
}
|
|
1650
|
+
.pro-form-item-edit-as-readonly.el-form-item .el-form-item__content {
|
|
1651
|
+
flex: 1 1 auto !important;
|
|
1652
|
+
margin-left: 0 !important;
|
|
1653
|
+
}
|
|
1654
|
+
.pro-form-item-edit-as-readonly.el-form-item--default {
|
|
1655
|
+
margin-bottom: 10px !important;
|
|
1656
|
+
}
|
|
1657
|
+
.pro-form-item-edit-as-readonly .pro-form-label-text {
|
|
1658
|
+
color: var(--pro-form-label-readonly-color, rgba(0, 0, 0, 0.45)) !important;
|
|
1659
|
+
}
|
|
@@ -3,7 +3,7 @@ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
|
3
3
|
import _typeof from '@babel/runtime/helpers/typeof';
|
|
4
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
5
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { ref, reactive,
|
|
6
|
+
import { ref, reactive, computed, watch, onMounted, nextTick, onUnmounted, openBlock, createElementBlock, Fragment, createCommentVNode, createBlock, unref, createVNode, mergeProps, withCtx, renderSlot, normalizeClass, renderList, createElementVNode, createTextVNode, toDisplayString, createSlots, resolveDynamicComponent } from 'vue';
|
|
7
7
|
import { ElSkeleton, ElForm, ElRow, ElCol, ElButton, ElIcon, ElFormItem, ElTooltip } from '@deppon/deppon-ui';
|
|
8
8
|
import { ArrowUp, ArrowDown, Warning } from '@deppon/deppon-ui/icons-vue';
|
|
9
9
|
import '../pro-field/ProField.vue.js';
|
|
@@ -102,6 +102,14 @@ var script = {
|
|
|
102
102
|
type: Boolean,
|
|
103
103
|
"default": false
|
|
104
104
|
},
|
|
105
|
+
/**
|
|
106
|
+
* 开启后:编辑态字段也使用只读态布局(label 左对齐 + 内容占满剩余宽度)
|
|
107
|
+
* 仅影响样式,不改变字段实际可编辑性
|
|
108
|
+
*/
|
|
109
|
+
editStyleAsReadonly: {
|
|
110
|
+
type: Boolean,
|
|
111
|
+
"default": false
|
|
112
|
+
},
|
|
105
113
|
/** 必填标识的位置 */
|
|
106
114
|
requireAsteriskPosition: {
|
|
107
115
|
type: String,
|
|
@@ -149,6 +157,9 @@ var script = {
|
|
|
149
157
|
var formRef = ref(null);
|
|
150
158
|
var formModel = reactive(_objectSpread({}, props.initialValues));
|
|
151
159
|
var collapsed = ref(props.defaultCollapsed);
|
|
160
|
+
var effectiveLabelWidth = computed(function () {
|
|
161
|
+
return props.editStyleAsReadonly ? undefined : props.labelWidth;
|
|
162
|
+
});
|
|
152
163
|
|
|
153
164
|
// 存储每个 label 的溢出状态
|
|
154
165
|
var labelOverflowMap = ref(new Map());
|
|
@@ -1167,7 +1178,7 @@ var script = {
|
|
|
1167
1178
|
ref: formRef,
|
|
1168
1179
|
model: formModel,
|
|
1169
1180
|
rules: __props.rules,
|
|
1170
|
-
"label-width":
|
|
1181
|
+
"label-width": effectiveLabelWidth.value,
|
|
1171
1182
|
"label-position": __props.labelPosition,
|
|
1172
1183
|
inline: __props.inline,
|
|
1173
1184
|
size: __props.size,
|
|
@@ -1240,7 +1251,8 @@ var script = {
|
|
|
1240
1251
|
}, item.formItemProps, {
|
|
1241
1252
|
"class": {
|
|
1242
1253
|
'pro-form-item-readonly': getFieldMode(item) === 'read',
|
|
1243
|
-
'pro-form-item-readonly-mode': item.mode === 'read'
|
|
1254
|
+
'pro-form-item-readonly-mode': item.mode === 'read',
|
|
1255
|
+
'pro-form-item-edit-as-readonly': __props.editStyleAsReadonly && getFieldMode(item) !== 'read'
|
|
1244
1256
|
}
|
|
1245
1257
|
}), createSlots({
|
|
1246
1258
|
"default": withCtx(function () {
|
package/es/pro-form/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefineComponent } from 'vue';
|
|
2
|
-
|
|
3
|
-
declare const ProForm: DefineComponent<Record<string, never>, Record<string, never>, any>;
|
|
4
|
-
export default ProForm;
|
|
1
|
+
import type { DefineComponent } from 'vue';
|
|
2
|
+
|
|
3
|
+
declare const ProForm: DefineComponent<Record<string, never>, Record<string, never>, any>;
|
|
4
|
+
export default ProForm;
|
package/es/pro-layout/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefineComponent } from 'vue';
|
|
2
|
-
|
|
3
|
-
declare const ProLayout: DefineComponent<Record<string, never>, Record<string, never>, any>;
|
|
4
|
-
export default ProLayout;
|
|
1
|
+
import type { DefineComponent } from 'vue';
|
|
2
|
+
|
|
3
|
+
declare const ProLayout: DefineComponent<Record<string, never>, Record<string, never>, any>;
|
|
4
|
+
export default ProLayout;
|
package/es/pro-table/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DefineComponent } from 'vue';
|
|
2
|
-
|
|
3
|
-
declare const ProTable: DefineComponent<Record<string, never>, Record<string, never>, any>;
|
|
4
|
-
export default ProTable;
|
|
1
|
+
import type { DefineComponent } from 'vue';
|
|
2
|
+
|
|
3
|
+
declare const ProTable: DefineComponent<Record<string, never>, Record<string, never>, any>;
|
|
4
|
+
export default ProTable;
|
package/es/pro-table/types.d.ts
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ProTable 列配置接口
|
|
3
|
-
*/
|
|
4
|
-
export interface Column {
|
|
5
|
-
prop?: string;
|
|
6
|
-
key?: string;
|
|
7
|
-
label?: string;
|
|
8
|
-
width?: number | string;
|
|
9
|
-
minWidth?: number | string;
|
|
10
|
-
fixed?: boolean | 'left' | 'right';
|
|
11
|
-
align?: 'left' | 'center' | 'right';
|
|
12
|
-
sorter?: boolean | ((a: any, b: any) => number);
|
|
13
|
-
filters?: Array<{
|
|
14
|
-
text: string;
|
|
15
|
-
value: any;
|
|
16
|
-
}>;
|
|
17
|
-
filterMethod?: (value: any, row: any) => boolean;
|
|
18
|
-
valueType?: 'select' | 'date' | 'dateTime' | 'dateRange' | 'time' | 'timeRange' | 'text' | 'textarea' | 'password' | 'textRange';
|
|
19
|
-
valueEnum?: Record<string, string>;
|
|
20
|
-
hideInSearch?: boolean;
|
|
21
|
-
hideInTable?: boolean;
|
|
22
|
-
colSpan?: number | object;
|
|
23
|
-
span?: number | object;
|
|
24
|
-
slots?: {
|
|
25
|
-
default?: string;
|
|
26
|
-
label?: string;
|
|
27
|
-
error?: string;
|
|
28
|
-
};
|
|
29
|
-
fieldProps?: Record<string, any> | ((row: any, index?: number) => Record<string, any>);
|
|
30
|
-
formItemProps?: Record<string, any>;
|
|
31
|
-
showWhenCollapsed?: boolean;
|
|
32
|
-
initialValue?: any;
|
|
33
|
-
rules?: any;
|
|
34
|
-
required?: boolean;
|
|
35
|
-
error?: string;
|
|
36
|
-
rangeCompareMessage?: string;
|
|
37
|
-
showMessage?: boolean;
|
|
38
|
-
inlineMessage?: boolean;
|
|
39
|
-
mode?: string;
|
|
40
|
-
plain?: boolean;
|
|
41
|
-
light?: boolean;
|
|
42
|
-
emptyText?: string;
|
|
43
|
-
component?: any;
|
|
44
|
-
componentProps?: Record<string, any>;
|
|
45
|
-
statusField?: string;
|
|
46
|
-
statusValue?: any;
|
|
47
|
-
columnBackgroundColor?: boolean;
|
|
48
|
-
warningText?: string;
|
|
49
|
-
warningTooltip?: string | string[] | ((row: any, index?: number) => string | string[]);
|
|
50
|
-
isRangeColumn?: boolean;
|
|
51
|
-
rangePairProp?: string;
|
|
52
|
-
maxRangeCount?: number | ((row: any) => number);
|
|
53
|
-
cellBackgroundColor?: (row: any) => string | {
|
|
54
|
-
backgroundColor?: string;
|
|
55
|
-
color?: string;
|
|
56
|
-
} | undefined;
|
|
57
|
-
children?: Column[];
|
|
58
|
-
collapsibleActions?: boolean;
|
|
59
|
-
maxVisibleActions?: number;
|
|
60
|
-
collapsible?: boolean;
|
|
61
|
-
defaultCollapsed?: boolean;
|
|
62
|
-
expandIcon?: any;
|
|
63
|
-
foldIcon?: any;
|
|
64
|
-
formatter?: (row: any, column?: Column, cellValue?: any, index?: number) => any;
|
|
65
|
-
clearRelatedFields?: string | string[];
|
|
66
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* ProTable 列配置接口
|
|
3
|
+
*/
|
|
4
|
+
export interface Column {
|
|
5
|
+
prop?: string;
|
|
6
|
+
key?: string;
|
|
7
|
+
label?: string;
|
|
8
|
+
width?: number | string;
|
|
9
|
+
minWidth?: number | string;
|
|
10
|
+
fixed?: boolean | 'left' | 'right';
|
|
11
|
+
align?: 'left' | 'center' | 'right';
|
|
12
|
+
sorter?: boolean | ((a: any, b: any) => number);
|
|
13
|
+
filters?: Array<{
|
|
14
|
+
text: string;
|
|
15
|
+
value: any;
|
|
16
|
+
}>;
|
|
17
|
+
filterMethod?: (value: any, row: any) => boolean;
|
|
18
|
+
valueType?: 'select' | 'date' | 'dateTime' | 'dateRange' | 'time' | 'timeRange' | 'text' | 'textarea' | 'password' | 'textRange';
|
|
19
|
+
valueEnum?: Record<string, string>;
|
|
20
|
+
hideInSearch?: boolean;
|
|
21
|
+
hideInTable?: boolean;
|
|
22
|
+
colSpan?: number | object;
|
|
23
|
+
span?: number | object;
|
|
24
|
+
slots?: {
|
|
25
|
+
default?: string;
|
|
26
|
+
label?: string;
|
|
27
|
+
error?: string;
|
|
28
|
+
};
|
|
29
|
+
fieldProps?: Record<string, any> | ((row: any, index?: number) => Record<string, any>);
|
|
30
|
+
formItemProps?: Record<string, any>;
|
|
31
|
+
showWhenCollapsed?: boolean;
|
|
32
|
+
initialValue?: any;
|
|
33
|
+
rules?: any;
|
|
34
|
+
required?: boolean;
|
|
35
|
+
error?: string;
|
|
36
|
+
rangeCompareMessage?: string;
|
|
37
|
+
showMessage?: boolean;
|
|
38
|
+
inlineMessage?: boolean;
|
|
39
|
+
mode?: string;
|
|
40
|
+
plain?: boolean;
|
|
41
|
+
light?: boolean;
|
|
42
|
+
emptyText?: string;
|
|
43
|
+
component?: any;
|
|
44
|
+
componentProps?: Record<string, any>;
|
|
45
|
+
statusField?: string;
|
|
46
|
+
statusValue?: any;
|
|
47
|
+
columnBackgroundColor?: boolean;
|
|
48
|
+
warningText?: string;
|
|
49
|
+
warningTooltip?: string | string[] | ((row: any, index?: number) => string | string[]);
|
|
50
|
+
isRangeColumn?: boolean;
|
|
51
|
+
rangePairProp?: string;
|
|
52
|
+
maxRangeCount?: number | ((row: any) => number);
|
|
53
|
+
cellBackgroundColor?: (row: any) => string | {
|
|
54
|
+
backgroundColor?: string;
|
|
55
|
+
color?: string;
|
|
56
|
+
} | undefined;
|
|
57
|
+
children?: Column[];
|
|
58
|
+
collapsibleActions?: boolean;
|
|
59
|
+
maxVisibleActions?: number;
|
|
60
|
+
collapsible?: boolean;
|
|
61
|
+
defaultCollapsed?: boolean;
|
|
62
|
+
expandIcon?: any;
|
|
63
|
+
foldIcon?: any;
|
|
64
|
+
formatter?: (row: any, column?: Column, cellValue?: any, index?: number) => any;
|
|
65
|
+
clearRelatedFields?: string | string[];
|
|
66
|
+
}
|