@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.
@@ -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, withCtx, mergeProps, renderSlot } from 'vue';
5
- import { ElTooltip, ElDatePicker } from '@deppon/deppon-ui';
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$fieldProps9, _displayText$value, _props$fieldProps0;
198
+ var _props$fieldProps8, _displayText$value, _props$fieldProps9;
275
199
  return __props.mode === 'read' ? (openBlock(), createElementBlock(Fragment, {
276
200
  key: 0
277
- }, [(_props$fieldProps9 = __props.fieldProps) !== null && _props$fieldProps9 !== void 0 && _props$fieldProps9.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$fieldProps0 = __props.fieldProps) !== null && _props$fieldProps0 !== void 0 && _props$fieldProps0.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", {
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(ElTooltip), {
283
- content: tooltipContent.value,
284
- disabled: !shouldShowTooltip.value,
285
- placement: "top"
286
- }, {
287
- "default": withCtx(function () {
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
- _: 1 /* STABLE */
307
- }, 8 /* PROPS */, ["content", "disabled"]), createCommentVNode(" 错误信息显示区域:支持通过 slot 自定义显示 "), __props.error ? renderSlot(_ctx.$slots, "error", {
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
- var needTooltipWrapper = computed(function () {
752
+ computed(function () {
756
753
  return true;
757
754
  });
758
755
 
759
756
  // tooltip 的内容(使用 input 的实际值)
760
- var tooltipContent = computed(function () {
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
- var shouldShowTooltip = computed(function () {
766
+ computed(function () {
770
767
  return false;
771
768
  });
772
769
 
773
770
  // 传递给 input 的 props(移除 showOverflowTooltip,因为我们在外层用 tooltip 处理)
774
- var inputFieldProps = computed(function () {
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[8] || (_cache[8] = createElementVNode("span", {
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[9] || (_cache[9] = createElementVNode("span", {
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
- }, [needTooltipWrapper.value ? (openBlock(), createBlock(unref(ElTooltip), {
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[6] || (_cache[6] = function ($event) {
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[7] || (_cache[7] = withModifiers(function (e) {
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"])), createCommentVNode(" 错误信息显示区域:支持通过 slot 自定义显示 "), displayError.value ? renderSlot(_ctx.$slots, "error", {
1131
- key: 2,
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;
@@ -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';
@@ -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, watch, computed, onMounted, nextTick, onUnmounted, openBlock, createElementBlock, Fragment, createCommentVNode, createBlock, unref, createVNode, mergeProps, withCtx, renderSlot, normalizeClass, renderList, createElementVNode, createTextVNode, toDisplayString, createSlots, resolveDynamicComponent } from 'vue';
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": __props.labelWidth,
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 () {
@@ -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;
@@ -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;
@@ -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;
@@ -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
+ }