pro-design-vue 1.3.25 → 1.3.26

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.
Files changed (61) hide show
  1. package/dist/index.full.js +144 -56
  2. package/dist/index.full.min.js +7 -7
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +7 -7
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +144 -57
  7. package/es/components/table/src/components/Body/Body.vue.d.ts +1 -1
  8. package/es/components/table/src/components/Body/BodyRow.vue.d.ts +1 -1
  9. package/es/components/table/src/components/Body/BodyRows.vue.d.ts +1 -1
  10. package/es/components/table/src/components/InteralTable.vue.d.ts +1 -1
  11. package/es/components/table/src/components/interface.d.ts +8 -0
  12. package/es/components/table/src/hooks/useEdit.d.ts +1 -1
  13. package/es/hooks/index.d.ts +1 -0
  14. package/es/hooks/use-fetch-data/index.d.ts +3 -0
  15. package/es/index.d.ts +11 -0
  16. package/es/index.mjs +1 -0
  17. package/es/index.mjs.map +1 -1
  18. package/es/packages/components/table/src/components/Body/BodyCell.vue.mjs.map +1 -1
  19. package/es/packages/components/table/src/components/Body/BodyCell.vue2.mjs.map +1 -1
  20. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs +122 -55
  21. package/es/packages/components/table/src/components/Body/BodyEditCell.mjs.map +1 -1
  22. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs +1 -1
  23. package/es/packages/components/table/src/components/Body/BodyRow.vue.mjs.map +1 -1
  24. package/es/packages/components/table/src/components/Body/BodyRow.vue2.mjs.map +1 -1
  25. package/es/packages/components/table/src/components/interface.mjs.map +1 -1
  26. package/es/packages/components/table/src/hooks/useEdit.mjs.map +1 -1
  27. package/es/packages/hooks/index.mjs +1 -0
  28. package/es/packages/hooks/index.mjs.map +1 -1
  29. package/es/packages/hooks/use-fetch-data/index.mjs +25 -0
  30. package/es/packages/hooks/use-fetch-data/index.mjs.map +1 -0
  31. package/es/version.d.ts +1 -1
  32. package/es/version.mjs +1 -1
  33. package/es/version.mjs.map +1 -1
  34. package/lib/components/table/src/components/Body/Body.vue.d.ts +1 -1
  35. package/lib/components/table/src/components/Body/BodyRow.vue.d.ts +1 -1
  36. package/lib/components/table/src/components/Body/BodyRows.vue.d.ts +1 -1
  37. package/lib/components/table/src/components/InteralTable.vue.d.ts +1 -1
  38. package/lib/components/table/src/components/interface.d.ts +8 -0
  39. package/lib/components/table/src/hooks/useEdit.d.ts +1 -1
  40. package/lib/hooks/index.d.ts +1 -0
  41. package/lib/hooks/use-fetch-data/index.d.ts +3 -0
  42. package/lib/index.d.ts +11 -0
  43. package/lib/index.js +2 -0
  44. package/lib/index.js.map +1 -1
  45. package/lib/packages/components/table/src/components/Body/BodyCell.vue.js.map +1 -1
  46. package/lib/packages/components/table/src/components/Body/BodyCell.vue2.js.map +1 -1
  47. package/lib/packages/components/table/src/components/Body/BodyEditCell.js +120 -53
  48. package/lib/packages/components/table/src/components/Body/BodyEditCell.js.map +1 -1
  49. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js +1 -1
  50. package/lib/packages/components/table/src/components/Body/BodyRow.vue.js.map +1 -1
  51. package/lib/packages/components/table/src/components/Body/BodyRow.vue2.js.map +1 -1
  52. package/lib/packages/components/table/src/components/interface.js.map +1 -1
  53. package/lib/packages/components/table/src/hooks/useEdit.js.map +1 -1
  54. package/lib/packages/hooks/index.js +2 -0
  55. package/lib/packages/hooks/index.js.map +1 -1
  56. package/lib/packages/hooks/use-fetch-data/index.js +27 -0
  57. package/lib/packages/hooks/use-fetch-data/index.js.map +1 -0
  58. package/lib/version.d.ts +1 -1
  59. package/lib/version.js +1 -1
  60. package/lib/version.js.map +1 -1
  61. package/package.json +1 -1
@@ -63,7 +63,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
63
63
  isRowEdit: import("vue").ComputedRef<boolean>;
64
64
  editRow: import("vue").ComputedRef<Record<string, any> | undefined>;
65
65
  mergedEditableKeys: import("vue").Ref<Key[] | undefined, Key[] | undefined>;
66
- openEditor: (key: string | string[]) => void;
66
+ openEditor: (key: string | string[], values?: Record<string, any>) => void;
67
67
  closeEditor: (key: string) => void;
68
68
  hoverRowKey: import("vue").Ref<Key, Key>;
69
69
  hoverColumnKey: import("vue").Ref<Key, Key>;
@@ -95,7 +95,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
95
95
  isRowEdit: import("vue").ComputedRef<boolean>;
96
96
  editRow: import("vue").ComputedRef<Record<string, any> | undefined>;
97
97
  mergedEditableKeys: import("vue").Ref<import("pro-design-vue").ProTableKey[] | undefined, import("pro-design-vue").ProTableKey[] | undefined>;
98
- openEditor: (key: string | string[]) => void;
98
+ openEditor: (key: string | string[], values?: Record<string, any>) => void;
99
99
  closeEditor: (key: string) => void;
100
100
  hoverRowKey: import("vue").Ref<import("pro-design-vue").ProTableKey, import("pro-design-vue").ProTableKey>;
101
101
  hoverColumnKey: import("vue").Ref<import("pro-design-vue").ProTableKey, import("pro-design-vue").ProTableKey>;
@@ -16567,7 +16567,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16567
16567
  isRowEdit: import("vue").ComputedRef<boolean>;
16568
16568
  editRow: import("vue").ComputedRef<Record<string, any> | undefined>;
16569
16569
  mergedEditableKeys: import("vue").Ref<Key[] | undefined, Key[] | undefined>;
16570
- openEditor: (key: string | string[]) => void;
16570
+ openEditor: (key: string | string[], values?: Record<string, any>) => void;
16571
16571
  closeEditor: (key: string) => void;
16572
16572
  hoverRowKey: import("vue").Ref<Key, Key>;
16573
16573
  hoverColumnKey: import("vue").Ref<Key, Key>;
@@ -182,6 +182,7 @@ export interface EditableValueParams<RecordType = DefaultRecordType, TValue = an
182
182
  record: RecordType;
183
183
  recordIndexs: number[];
184
184
  column: ColumnType<RecordType>;
185
+ updateEditedCellValue?: (key: DataIndex, value: any) => void;
185
186
  }
186
187
  export interface ValueParserFunc<T = any, TValue = any> {
187
188
  (params: EditableValueParams<T, TValue>): TValue | null | undefined;
@@ -1790,6 +1791,13 @@ export interface EditableCellConfig<T = DefaultRecordType> {
1790
1791
  * 校验规则
1791
1792
  */
1792
1793
  rules?: EditableCellRules<T>;
1794
+ /**
1795
+ * 是否显示编辑图标
1796
+ * @default true
1797
+ */
1798
+ request?: (params: Record<string, any>) => Promise<Record<string, any>[]>;
1799
+ /** @name 依赖字段的name,暂时只在拥有 request 的项目中生效,会自动注入到 params 中 */
1800
+ dependencies?: DataIndex[];
1793
1801
  }
1794
1802
  export interface ColumnType<RecordType = DefaultRecordType> extends ColumnSharedType, Omit<ProFormItemType, 'key' | 'originKey' | 'tooltip' | 'hidden' | 'grid' | 'title' | 'spaceProps' | 'children' | 'width' | 'ignoreWidth' | 'name' | 'originName' | 'rowProps' | 'colProps' | 'valueEnum'> {
1795
1803
  search?: ProFormItemType;
@@ -2,7 +2,7 @@ import type { Ref, ShallowRef, ComputedRef } from 'vue';
2
2
  import type { AddLineOptions, DefaultRecordType, GetRowKey, Key, ProTableProps, RowEditableType, TableEditingCell, TablePromiseErrorData } from '../components/interface';
3
3
  type EditProps = {
4
4
  editCellKeys: Ref<string[]>;
5
- openEditor: (key: string | string[]) => void;
5
+ openEditor: (key: string | string[], values?: Record<string, any>) => void;
6
6
  closeEditor: (key: string) => void;
7
7
  editableType: ComputedRef<RowEditableType | undefined>;
8
8
  mergedEditableKeys: Ref<Key[] | undefined>;
@@ -2,3 +2,4 @@ export * from './use-prefix-cls';
2
2
  export * from './use-is-mobile';
3
3
  export * from './use-merged-state';
4
4
  export * from './use-state';
5
+ export * from './use-fetch-data';
@@ -0,0 +1,3 @@
1
+ export declare function useFetchData(props: {
2
+ request?: any;
3
+ }): (params?: Record<string, any>, index?: number) => Promise<any>;
package/lib/index.d.ts CHANGED
@@ -5243,6 +5243,13 @@ declare interface EditableCellConfig<T = DefaultRecordType> {
5243
5243
  * 校验规则
5244
5244
  */
5245
5245
  rules?: EditableCellRules<T>;
5246
+ /**
5247
+ * 是否显示编辑图标
5248
+ * @default true
5249
+ */
5250
+ request?: (params: Record<string, any>) => Promise<Record<string, any>[]>;
5251
+ /** @name 依赖字段的name,暂时只在拥有 request 的项目中生效,会自动注入到 params 中 */
5252
+ dependencies?: DataIndex[];
5246
5253
  }
5247
5254
  declare type EditableCellProps<T> = PlainObject | ((params: EditableValueParams<T>) => PlainObject);
5248
5255
  declare type EditableCellRules<T> = EditRule[] | ((params: EditableValueParams<T>) => EditRule[]);
@@ -5253,6 +5260,7 @@ declare interface EditableValueParams<RecordType = DefaultRecordType, TValue = a
5253
5260
  record: RecordType;
5254
5261
  recordIndexs: number[];
5255
5262
  column: ColumnType<RecordType>;
5263
+ updateEditedCellValue?: (key: DataIndex, value: any) => void;
5256
5264
  }
5257
5265
  declare interface EditRule {
5258
5266
  /**
@@ -11123,6 +11131,9 @@ declare type TriggerEventHandler<RecordType> = (record: RecordType, key: ProTabl
11123
11131
  export declare const trTRIntl: IntlType;
11124
11132
  export declare const ukUAIntl: IntlType;
11125
11133
  declare const UP = "up";
11134
+ export declare function useFetchData(props: {
11135
+ request?: any;
11136
+ }): (params?: Record<string, any>, index?: number) => Promise<any>;
11126
11137
  declare type UseFetchDataAction<T = any> = {
11127
11138
  dataSource: Ref<T[]>;
11128
11139
  keyword: Ref<string>;
package/lib/index.js CHANGED
@@ -44,6 +44,7 @@ var index$f = require('./packages/hooks/use-prefix-cls/index.js');
44
44
  var index$g = require('./packages/hooks/use-is-mobile/index.js');
45
45
  var index$h = require('./packages/hooks/use-merged-state/index.js');
46
46
  var index$i = require('./packages/hooks/use-state/index.js');
47
+ var index$j = require('./packages/hooks/use-fetch-data/index.js');
47
48
 
48
49
  const install = defaults.default.install;
49
50
  const version = defaults.default.version;
@@ -141,6 +142,7 @@ exports.usePrefixCls = index$f.usePrefixCls;
141
142
  exports.useIsMobile = index$g.useIsMobile;
142
143
  exports.useMergedState = index$h.useMergedState;
143
144
  exports.useState = index$i.useState;
145
+ exports.useFetchData = index$j.useFetchData;
144
146
  exports.install = install;
145
147
  exports.version = version;
146
148
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/pro-design-vue/index.ts"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2025-08-26 21:22:00\n * @LastEditors: shen\n * @LastEditTime: 2025-08-31 17:47:05\n * @Description:\n */\nimport installer from './defaults'\n\nexport * from '@pro-design-vue/components'\nexport * from '@pro-design-vue/constants'\nexport * from '@pro-design-vue/directives'\nexport * from '@pro-design-vue/hooks'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\nexport default installer\n\nexport { default as dayjs } from 'dayjs'\n"],"names":["installer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,UAAUA,gBAAA,CAAU;AAC1B,MAAM,UAAUA,gBAAA,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/pro-design-vue/index.ts"],"sourcesContent":["/*\n * @Author: shen\n * @Date: 2025-08-26 21:22:00\n * @LastEditors: shen\n * @LastEditTime: 2025-08-31 17:47:05\n * @Description:\n */\nimport installer from './defaults'\n\nexport * from '@pro-design-vue/components'\nexport * from '@pro-design-vue/constants'\nexport * from '@pro-design-vue/directives'\nexport * from '@pro-design-vue/hooks'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\nexport default installer\n\nexport { default as dayjs } from 'dayjs'\n"],"names":["installer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,MAAM,UAAUA,gBAAA,CAAU;AAC1B,MAAM,UAAUA,gBAAA,CAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BodyCell.vue.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 22:29:52\n * @LastEditors: shen\n * @LastEditTime: 2025-12-02 17:16:19\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { EditableTrigger, FinallyColumnType, Key, RowType } from '../interface'\nimport { defineComponent, computed, watch, onMounted } from 'vue'\nimport { get } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { getCellKey } from '../../utils/util'\nimport BodyTextCell from './BodyTextCell'\nimport BodyEditCell from './BodyEditCell'\nexport default defineComponent({\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n editRow: { type: Object as PropType<any> },\n calMaxHeight: Function,\n editCellKeys: Array as PropType<string[]>,\n editableKeys: Array as PropType<Key[]>,\n isRowEdit: Boolean as PropType<boolean>,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onCellLeave: Function,\n onMouseenter: Function,\n },\n emits: ['mouseenter', 'cellLeave'],\n components: { BodyTextCell, BodyEditCell },\n setup(props) {\n const tableContext = useInjectTable()\n const isKeepEditMode = computed(() => props.column.edit?.keepEditMode)\n const cellValue = computed(() =>\n props.column!.dataIndex ? get(props.item, props.column!.dataIndex) : undefined,\n )\n\n const key = computed(() => getCellKey(props.rowKey!, props.column.columnKey))\n\n const cellParams = computed(() => ({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n value: cellValue.value,\n }))\n\n const editable = computed(() => {\n if (!props.column.edit?.component) {\n return false\n }\n if (props.isRowEdit && !props.editableKeys?.includes(props.rowKey!)) {\n return false\n }\n if (!props.column.edit?.editable) {\n return true\n }\n const cellEditable = props.column.edit?.editable(cellParams.value)\n return cellEditable\n })\n\n const isEditing = computed(() => {\n if (props.isRowEdit) {\n return editable.value && props.editableKeys?.includes(props.rowKey!)\n }\n if (!editable.value) {\n return false\n }\n if (isKeepEditMode.value) {\n return true\n }\n if (props.editCellKeys?.includes(key.value)) {\n return true\n }\n return false\n })\n\n const editableTrigger = computed(() => {\n let { editableTrigger = ['click'] } = props.column!.edit ?? {}\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n return editableTrigger\n })\n\n const onCellEvent = (e: MouseEvent, trigger: EditableTrigger) => {\n if (editable.value && editableTrigger.value?.includes(trigger) && !props.isRowEdit) {\n openEditor()\n closeEditor()\n e.stopPropagation()\n e.preventDefault()\n }\n }\n\n const openEditor = () => {\n const oldValue = props.column.edit?.valueGetter?.(cellParams.value) ?? cellValue.value\n props.onOpenEditor?.(key.value, { [key.value]: oldValue })\n }\n\n const closeEditor = () => {\n props.onCloseEditor?.(key.value)\n }\n\n watch(key, () => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n onMounted(() => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n return {\n props,\n key,\n isEditing,\n editable,\n onCellEvent,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isEditing\">\n <BodyEditCell\n :key=\"key\"\n :prefixCls=\"prefixCls\"\n :rowIndex=\"rowIndex\"\n :flattenRowIndex=\"flattenRowIndex\"\n :rowKey=\"rowKey\"\n :column=\"column\"\n :item=\"item\"\n :edit-row=\"editRow\"\n :editable-keys=\"editableKeys\"\n :is-row-edit=\"isRowEdit\"\n />\n </template>\n <template v-else>\n <BodyTextCell\n v-bind=\"props\"\n :style=\"{ cursor: editable ? 'poiner' : '' }\"\n @click=\"onCellEvent($event, 'click')\"\n @dblClick=\"onCellEvent($event, 'dblClick')\"\n @contextmenu=\"onCellEvent($event, 'contextmenu')\"\n >\n <template #appendNode>\n <slot name=\"appendNode\" />\n </template>\n </BodyTextCell>\n </template>\n</template>\n"],"names":["_openBlock","_createBlock","_mergeProps","_withCtx","_renderSlot"],"mappings":";;;;;;;;;;;AA0IkB,EAAA,OAAA,IAAA,CAAA,SAAA,IAAAA,aAAA,EAAA,EACdC,gBAWE,uBAAA,EAAA;AAAA,IAVC,KAAK,IAAA,CAAA,GAAA;AAAA,IACL,WAAW,IAAA,CAAA,SAAA;AAAA,IACX,UAAU,IAAA,CAAA,QAAA;AAAA,IACV,iBAAiB,IAAA,CAAA,eAAA;AAAA,IACjB,QAAQ,IAAA,CAAA,MAAA;AAAA,IACR,QAAQ,IAAA,CAAA,MAAA;AAAA,IACR,MAAM,IAAA,CAAA,IAAA;AAAA,IACN,YAAU,IAAA,CAAA,OAAA;AAAA,IACV,iBAAe,IAAA,CAAA,YAAA;AAAA,IACf,eAAa,IAAA,CAAA;AAAA,GAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,WAAA,EAAA,YAAA,iBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,CAAA,CAAA,KAAAD,aAAA,EAAA,EAIhBC,eAAA,CAUe,uBAAA,EAVfC,cAAA,CAUe,EAAA,GAAA,EAAA,CAAA,EAAA,EATL,IAAA,CAAA,KAAA,EAAK;AAAA,IACZ,OAAK,UAAY,IAAA,CAAA,QAAA,GAAQ,WAAA,EAAA,EAAA;AAAA,IACzB,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,OAAA,CAAA,CAAA;AAAA,IACzB,UAAA,EAAQ,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,UAAA,CAAA,CAAA;AAAA,IAC5B,aAAA,EAAW,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,aAAA,CAAA;AAAA,GAAA,CAAA,EAAA;AAAA,IAErB,UAAA,EAAUC,YACnB,MAA0B;AAAA,MAA1BC,cAAA,CAA0B,IAAA,CAAA,MAAA,EAAA,YAAA;AAAA,KAAA,CAAA;AAAA;;;;;;;;"}
1
+ {"version":3,"file":"BodyCell.vue.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 22:29:52\n * @LastEditors: shen\n * @LastEditTime: 2025-12-04 10:03:58\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { EditableTrigger, FinallyColumnType, Key, RowType } from '../interface'\nimport { defineComponent, computed, watch, onMounted } from 'vue'\nimport { get } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { getCellKey } from '../../utils/util'\nimport BodyTextCell from './BodyTextCell'\nimport BodyEditCell from './BodyEditCell'\nexport default defineComponent({\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n editRow: { type: Object as PropType<any> },\n calMaxHeight: Function,\n editCellKeys: Array as PropType<string[]>,\n editableKeys: Array as PropType<Key[]>,\n isRowEdit: Boolean as PropType<boolean>,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onCellLeave: Function,\n onMouseenter: Function,\n },\n emits: ['mouseenter', 'cellLeave'],\n components: { BodyTextCell, BodyEditCell },\n setup(props) {\n const tableContext = useInjectTable()\n const isKeepEditMode = computed(() => props.column.edit?.keepEditMode)\n const cellValue = computed(() =>\n props.column!.dataIndex ? get(props.item, props.column!.dataIndex) : undefined,\n )\n\n const key = computed(() => getCellKey(props.rowKey!, props.column.columnKey))\n\n const cellParams = computed(() => ({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n value: cellValue.value,\n }))\n\n const editable = computed(() => {\n if (!props.column.edit?.component) {\n return false\n }\n if (props.isRowEdit && !props.editableKeys?.includes(props.rowKey!)) {\n return false\n }\n if (!props.column.edit?.editable) {\n return true\n }\n const cellEditable = props.column.edit?.editable(cellParams.value)\n return cellEditable\n })\n\n const isEditing = computed(() => {\n if (props.isRowEdit) {\n return editable.value && props.editableKeys?.includes(props.rowKey!)\n }\n if (!editable.value) {\n return false\n }\n if (isKeepEditMode.value) {\n return true\n }\n if (props.editCellKeys?.includes(key.value)) {\n return true\n }\n return false\n })\n\n const editableTrigger = computed(() => {\n let { editableTrigger = ['click'] } = props.column!.edit ?? {}\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n return editableTrigger\n })\n\n const onCellEvent = (e: MouseEvent, trigger: EditableTrigger) => {\n if (editable.value && editableTrigger.value?.includes(trigger) && !props.isRowEdit) {\n openEditor()\n closeEditor()\n e.stopPropagation()\n e.preventDefault()\n }\n }\n\n const openEditor = () => {\n const oldValue = props.column.edit?.valueGetter?.(cellParams.value) ?? cellValue.value\n props.onOpenEditor?.(key.value, { [key.value]: oldValue })\n }\n\n const closeEditor = () => {\n props.onCloseEditor?.(key.value)\n }\n\n watch(key, () => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n onMounted(() => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n return {\n props,\n key,\n isEditing,\n editable,\n onCellEvent,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isEditing\">\n <BodyEditCell\n :key=\"key\"\n :prefixCls=\"prefixCls\"\n :rowIndex=\"rowIndex\"\n :flattenRowIndex=\"flattenRowIndex\"\n :rowKey=\"rowKey\"\n :column=\"column\"\n :item=\"item\"\n :edit-row=\"editRow\"\n :editable-keys=\"editableKeys\"\n :is-row-edit=\"isRowEdit\"\n />\n </template>\n <template v-else>\n <BodyTextCell\n v-bind=\"props\"\n :style=\"{ cursor: editable ? 'poiner' : '' }\"\n @click=\"onCellEvent($event, 'click')\"\n @dblClick=\"onCellEvent($event, 'dblClick')\"\n @contextmenu=\"onCellEvent($event, 'contextmenu')\"\n >\n <template #appendNode>\n <slot name=\"appendNode\" />\n </template>\n </BodyTextCell>\n </template>\n</template>\n"],"names":["_openBlock","_createBlock","_mergeProps","_withCtx","_renderSlot"],"mappings":";;;;;;;;;;;AA0IkB,EAAA,OAAA,IAAA,CAAA,SAAA,IAAAA,aAAA,EAAA,EACdC,gBAWE,uBAAA,EAAA;AAAA,IAVC,KAAK,IAAA,CAAA,GAAA;AAAA,IACL,WAAW,IAAA,CAAA,SAAA;AAAA,IACX,UAAU,IAAA,CAAA,QAAA;AAAA,IACV,iBAAiB,IAAA,CAAA,eAAA;AAAA,IACjB,QAAQ,IAAA,CAAA,MAAA;AAAA,IACR,QAAQ,IAAA,CAAA,MAAA;AAAA,IACR,MAAM,IAAA,CAAA,IAAA;AAAA,IACN,YAAU,IAAA,CAAA,OAAA;AAAA,IACV,iBAAe,IAAA,CAAA,YAAA;AAAA,IACf,eAAa,IAAA,CAAA;AAAA,GAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,WAAA,EAAA,YAAA,iBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,aAAA,CAAA,CAAA,KAAAD,aAAA,EAAA,EAIhBC,eAAA,CAUe,uBAAA,EAVfC,cAAA,CAUe,EAAA,GAAA,EAAA,CAAA,EAAA,EATL,IAAA,CAAA,KAAA,EAAK;AAAA,IACZ,OAAK,UAAY,IAAA,CAAA,QAAA,GAAQ,WAAA,EAAA,EAAA;AAAA,IACzB,OAAA,EAAK,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,OAAA,CAAA,CAAA;AAAA,IACzB,UAAA,EAAQ,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,UAAA,CAAA,CAAA;AAAA,IAC5B,aAAA,EAAW,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAE,IAAA,CAAA,WAAA,CAAY,MAAA,EAAM,aAAA,CAAA;AAAA,GAAA,CAAA,EAAA;AAAA,IAErB,UAAA,EAAUC,YACnB,MAA0B;AAAA,MAA1BC,cAAA,CAA0B,IAAA,CAAA,MAAA,EAAA,YAAA;AAAA,KAAA,CAAA;AAAA;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"BodyCell.vue2.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 22:29:52\n * @LastEditors: shen\n * @LastEditTime: 2025-12-02 17:16:19\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { EditableTrigger, FinallyColumnType, Key, RowType } from '../interface'\nimport { defineComponent, computed, watch, onMounted } from 'vue'\nimport { get } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { getCellKey } from '../../utils/util'\nimport BodyTextCell from './BodyTextCell'\nimport BodyEditCell from './BodyEditCell'\nexport default defineComponent({\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n editRow: { type: Object as PropType<any> },\n calMaxHeight: Function,\n editCellKeys: Array as PropType<string[]>,\n editableKeys: Array as PropType<Key[]>,\n isRowEdit: Boolean as PropType<boolean>,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onCellLeave: Function,\n onMouseenter: Function,\n },\n emits: ['mouseenter', 'cellLeave'],\n components: { BodyTextCell, BodyEditCell },\n setup(props) {\n const tableContext = useInjectTable()\n const isKeepEditMode = computed(() => props.column.edit?.keepEditMode)\n const cellValue = computed(() =>\n props.column!.dataIndex ? get(props.item, props.column!.dataIndex) : undefined,\n )\n\n const key = computed(() => getCellKey(props.rowKey!, props.column.columnKey))\n\n const cellParams = computed(() => ({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n value: cellValue.value,\n }))\n\n const editable = computed(() => {\n if (!props.column.edit?.component) {\n return false\n }\n if (props.isRowEdit && !props.editableKeys?.includes(props.rowKey!)) {\n return false\n }\n if (!props.column.edit?.editable) {\n return true\n }\n const cellEditable = props.column.edit?.editable(cellParams.value)\n return cellEditable\n })\n\n const isEditing = computed(() => {\n if (props.isRowEdit) {\n return editable.value && props.editableKeys?.includes(props.rowKey!)\n }\n if (!editable.value) {\n return false\n }\n if (isKeepEditMode.value) {\n return true\n }\n if (props.editCellKeys?.includes(key.value)) {\n return true\n }\n return false\n })\n\n const editableTrigger = computed(() => {\n let { editableTrigger = ['click'] } = props.column!.edit ?? {}\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n return editableTrigger\n })\n\n const onCellEvent = (e: MouseEvent, trigger: EditableTrigger) => {\n if (editable.value && editableTrigger.value?.includes(trigger) && !props.isRowEdit) {\n openEditor()\n closeEditor()\n e.stopPropagation()\n e.preventDefault()\n }\n }\n\n const openEditor = () => {\n const oldValue = props.column.edit?.valueGetter?.(cellParams.value) ?? cellValue.value\n props.onOpenEditor?.(key.value, { [key.value]: oldValue })\n }\n\n const closeEditor = () => {\n props.onCloseEditor?.(key.value)\n }\n\n watch(key, () => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n onMounted(() => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n return {\n props,\n key,\n isEditing,\n editable,\n onCellEvent,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isEditing\">\n <BodyEditCell\n :key=\"key\"\n :prefixCls=\"prefixCls\"\n :rowIndex=\"rowIndex\"\n :flattenRowIndex=\"flattenRowIndex\"\n :rowKey=\"rowKey\"\n :column=\"column\"\n :item=\"item\"\n :edit-row=\"editRow\"\n :editable-keys=\"editableKeys\"\n :is-row-edit=\"isRowEdit\"\n />\n </template>\n <template v-else>\n <BodyTextCell\n v-bind=\"props\"\n :style=\"{ cursor: editable ? 'poiner' : '' }\"\n @click=\"onCellEvent($event, 'click')\"\n @dblClick=\"onCellEvent($event, 'dblClick')\"\n @contextmenu=\"onCellEvent($event, 'contextmenu')\"\n >\n <template #appendNode>\n <slot name=\"appendNode\" />\n </template>\n </BodyTextCell>\n </template>\n</template>\n"],"names":["defineComponent","BodyTextCell","BodyEditCell","useInjectTable","computed","get","getCellKey","editableTrigger","watch","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"BodyCell.vue2.js","sources":["../../../../../../../../../packages/components/table/src/components/Body/BodyCell.vue"],"sourcesContent":["<!--\n * @Author: shen\n * @Date: 2023-11-09 22:29:52\n * @LastEditors: shen\n * @LastEditTime: 2025-12-04 10:03:58\n * @Description:\n-->\n<script lang=\"ts\">\nimport type { PropType } from 'vue'\nimport type { EditableTrigger, FinallyColumnType, Key, RowType } from '../interface'\nimport { defineComponent, computed, watch, onMounted } from 'vue'\nimport { get } from '@pro-design-vue/utils'\nimport { useInjectTable } from '../context/TableContext'\nimport { getCellKey } from '../../utils/util'\nimport BodyTextCell from './BodyTextCell'\nimport BodyEditCell from './BodyEditCell'\nexport default defineComponent({\n inheritAttrs: false,\n props: {\n prefixCls: String as PropType<string>,\n rowIndex: { type: Number as PropType<number>, required: true },\n flattenRowIndex: { type: Number, required: true },\n rowKey: { type: [Number, String] },\n column: { type: Object as PropType<FinallyColumnType>, default: () => ({}) },\n item: { type: Object as PropType<any>, default: () => ({}) },\n wrapText: { type: Boolean as PropType<boolean>, default: false },\n type: { type: String as PropType<RowType> },\n height: Number as PropType<number>,\n hasAppendNode: Boolean as PropType<boolean>,\n resizeObserver: { type: Object as PropType<ResizeObserver> },\n editRow: { type: Object as PropType<any> },\n calMaxHeight: Function,\n editCellKeys: Array as PropType<string[]>,\n editableKeys: Array as PropType<Key[]>,\n isRowEdit: Boolean as PropType<boolean>,\n tooltipOpen: Boolean as PropType<boolean>,\n getPopupContainer: Function as PropType<() => HTMLElement>,\n onOpenEditor: Function,\n onCloseEditor: Function,\n onCellLeave: Function,\n onMouseenter: Function,\n },\n emits: ['mouseenter', 'cellLeave'],\n components: { BodyTextCell, BodyEditCell },\n setup(props) {\n const tableContext = useInjectTable()\n const isKeepEditMode = computed(() => props.column.edit?.keepEditMode)\n const cellValue = computed(() =>\n props.column!.dataIndex ? get(props.item, props.column!.dataIndex) : undefined,\n )\n\n const key = computed(() => getCellKey(props.rowKey!, props.column.columnKey))\n\n const cellParams = computed(() => ({\n column: props.column,\n record: props.isRowEdit ? props.editRow : props.item,\n recordIndexs: tableContext.getIndexsByKey(props.rowKey!),\n value: cellValue.value,\n }))\n\n const editable = computed(() => {\n if (!props.column.edit?.component) {\n return false\n }\n if (props.isRowEdit && !props.editableKeys?.includes(props.rowKey!)) {\n return false\n }\n if (!props.column.edit?.editable) {\n return true\n }\n const cellEditable = props.column.edit?.editable(cellParams.value)\n return cellEditable\n })\n\n const isEditing = computed(() => {\n if (props.isRowEdit) {\n return editable.value && props.editableKeys?.includes(props.rowKey!)\n }\n if (!editable.value) {\n return false\n }\n if (isKeepEditMode.value) {\n return true\n }\n if (props.editCellKeys?.includes(key.value)) {\n return true\n }\n return false\n })\n\n const editableTrigger = computed(() => {\n let { editableTrigger = ['click'] } = props.column!.edit ?? {}\n editableTrigger = Array.isArray(editableTrigger) ? editableTrigger : [editableTrigger]\n return editableTrigger\n })\n\n const onCellEvent = (e: MouseEvent, trigger: EditableTrigger) => {\n if (editable.value && editableTrigger.value?.includes(trigger) && !props.isRowEdit) {\n openEditor()\n closeEditor()\n e.stopPropagation()\n e.preventDefault()\n }\n }\n\n const openEditor = () => {\n const oldValue = props.column.edit?.valueGetter?.(cellParams.value) ?? cellValue.value\n props.onOpenEditor?.(key.value, { [key.value]: oldValue })\n }\n\n const closeEditor = () => {\n props.onCloseEditor?.(key.value)\n }\n\n watch(key, () => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n onMounted(() => {\n if (props.column.edit?.defaultEditable && !props.isRowEdit) {\n openEditor()\n }\n })\n\n return {\n props,\n key,\n isEditing,\n editable,\n onCellEvent,\n }\n },\n})\n</script>\n\n<template>\n <template v-if=\"isEditing\">\n <BodyEditCell\n :key=\"key\"\n :prefixCls=\"prefixCls\"\n :rowIndex=\"rowIndex\"\n :flattenRowIndex=\"flattenRowIndex\"\n :rowKey=\"rowKey\"\n :column=\"column\"\n :item=\"item\"\n :edit-row=\"editRow\"\n :editable-keys=\"editableKeys\"\n :is-row-edit=\"isRowEdit\"\n />\n </template>\n <template v-else>\n <BodyTextCell\n v-bind=\"props\"\n :style=\"{ cursor: editable ? 'poiner' : '' }\"\n @click=\"onCellEvent($event, 'click')\"\n @dblClick=\"onCellEvent($event, 'dblClick')\"\n @contextmenu=\"onCellEvent($event, 'contextmenu')\"\n >\n <template #appendNode>\n <slot name=\"appendNode\" />\n </template>\n </BodyTextCell>\n </template>\n</template>\n"],"names":["defineComponent","BodyTextCell","BodyEditCell","useInjectTable","computed","get","getCellKey","editableTrigger","watch","onMounted"],"mappings":"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"}
@@ -9,6 +9,7 @@ var useLevel = require('../../hooks/useLevel.js');
9
9
  var Icon = require('@ant-design/icons-vue');
10
10
  var useEdit = require('../../hooks/useEdit.js');
11
11
  var formModel = require('../../utils/form-model.js');
12
+ var index = require('../../../../../hooks/use-fetch-data/index.js');
12
13
  var runFunction = require('../../../../../utils/run-function.js');
13
14
  var lodashUnified = require('lodash-unified');
14
15
  var validate = require('../../../../../utils/validate.js');
@@ -71,24 +72,27 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
71
72
  },
72
73
  emits: ["closeEditor", "keydown"],
73
74
  setup(props) {
75
+ var _a;
76
+ const loading = vue.ref(false);
74
77
  const tableContext = TableContext.useInjectTable();
75
78
  const level = useLevel.useInjectLevel();
79
+ const fetchOptions = vue.ref();
76
80
  const columnKey = vue.computed(() => props.column.columnKey);
77
81
  const recordIndexs = vue.computed(() => tableContext.getIndexsByKey(props.rowKey));
78
- const childrenColumnName = vue.computed(() => tableContext.props.childrenColumnName || "children");
79
82
  const valueEnum = vue.computed(() => {
80
- var _a;
81
- return parsingValueEnumToArray(runFunction.runFunction((_a = props.column) == null ? void 0 : _a.valueEnum, props.item));
83
+ var _a2;
84
+ return parsingValueEnumToArray(runFunction.runFunction((_a2 = props.column) == null ? void 0 : _a2.valueEnum, props.item));
82
85
  });
86
+ const originValue = lodashUnified.get(props.item, props.column.dataIndex);
83
87
  const errorList = vue.ref();
84
88
  const {
85
89
  editRowsMap,
86
90
  setEditingCell
87
91
  } = useEdit.useEditInject();
88
- const cellValue = vue.computed(() => props.column.dataIndex ? lodashUnified.get(!props.isRowEdit ? props.item : props.editRow, props.column.dataIndex) : void 0);
92
+ const cellValue = vue.computed(() => props.column.dataIndex ? lodashUnified.get(props.editRow, props.column.dataIndex) : void 0);
89
93
  const cellRender = vue.computed(() => {
90
- var _a, _b;
91
- return ((_b = (_a = tableContext.allCellProps.value) == null ? void 0 : _a[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
94
+ var _a2, _b;
95
+ return ((_b = (_a2 = tableContext.allCellProps.value) == null ? void 0 : _a2[props.rowKey]) == null ? void 0 : _b[props.column.columnKey]) || {};
92
96
  });
93
97
  const cellProps = vue.computed(() => cellRender.value.props || {});
94
98
  const cellRowSpan = vue.computed(() => cellProps.value.rowSpan);
@@ -96,8 +100,8 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
96
100
  key
97
101
  }) => key === columnKey.value));
98
102
  const sorterOrder = vue.computed(() => {
99
- var _a;
100
- return sorterState.value ? (_a = sorterState.value) == null ? void 0 : _a.sortOrder : null;
103
+ var _a2;
104
+ return sorterState.value ? (_a2 = sorterState.value) == null ? void 0 : _a2.sortOrder : null;
101
105
  });
102
106
  const cellClass = vue.computed(() => ({
103
107
  [`${props.prefixCls}-cell`]: true,
@@ -107,26 +111,41 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
107
111
  [`${props.prefixCls}-cell-hidden`]: cellRowSpan.value === 0,
108
112
  [`${props.prefixCls}-column-sort`]: sorterOrder.value
109
113
  }));
114
+ const hasFetchOptions = vue.computed(() => {
115
+ var _a2, _b, _c;
116
+ return ((_a2 = props.column.edit) == null ? void 0 : _a2.request) && ((_c = (_b = props.column.edit) == null ? void 0 : _b.dependencies) == null ? void 0 : _c.length);
117
+ });
110
118
  const rules = vue.computed(() => {
111
- var _a, _b;
112
- return (_b = runFunction.runFunction((_a = props.column.edit) == null ? void 0 : _a.rules, {
119
+ var _a2, _b;
120
+ return (_b = runFunction.runFunction((_a2 = props.column.edit) == null ? void 0 : _a2.rules, {
113
121
  column: props.column,
114
- record: props.isRowEdit ? props.editRow : props.item,
122
+ record: props.editRow,
115
123
  recordIndexs: recordIndexs.value,
116
124
  newValue: cellValue.value
117
125
  })) != null ? _b : [];
118
126
  });
119
127
  const validateEnabled = vue.computed(() => rules.value.length > 0);
120
128
  const editValue = vue.ref();
129
+ const updateEditedCellValue = (key, value) => {
130
+ setTimeout(() => {
131
+ const editRow = {
132
+ ...props.editRow
133
+ };
134
+ lodashUnified.set(editRow, key, value);
135
+ editRowsMap.value[props.rowKey] = editRow;
136
+ vue.triggerRef(editRowsMap);
137
+ }, 10);
138
+ };
121
139
  const cellParams = vue.computed(() => ({
122
140
  column: props.column,
123
- record: !props.isRowEdit ? props.item : props.editRow,
141
+ record: props.editRow,
124
142
  recordIndexs: recordIndexs.value,
125
- value: editValue.value
143
+ value: editValue.value,
144
+ updateEditedCellValue
126
145
  }));
127
146
  const editOnListeners = vue.computed(() => {
128
- var _a, _b;
129
- return ((_b = (_a = props.column.edit) == null ? void 0 : _a.on) == null ? void 0 : _b.call(_a, {
147
+ var _a2, _b;
148
+ return ((_b = (_a2 = props.column.edit) == null ? void 0 : _a2.on) == null ? void 0 : _b.call(_a2, {
130
149
  ...cellParams.value
131
150
  })) || {};
132
151
  });
@@ -139,8 +158,8 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
139
158
  };
140
159
  });
141
160
  const options = vue.computed(() => {
142
- var _a, _b;
143
- return (_b = (_a = editProps.value) == null ? void 0 : _a.options) != null ? _b : valueEnum.value;
161
+ var _a2, _b, _c;
162
+ return (_c = (_b = fetchOptions.value) != null ? _b : (_a2 = editProps.value) == null ? void 0 : _a2.options) != null ? _c : valueEnum.value;
144
163
  });
145
164
  const componentProps = vue.computed(() => {
146
165
  const {
@@ -161,6 +180,10 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
161
180
  resolve(true);
162
181
  return true;
163
182
  }
183
+ if (lodashUnified.isEqual(originValue, editValue.value) && !(originValue === void 0 || originValue === null || originValue === "")) {
184
+ resolve(true);
185
+ return true;
186
+ }
164
187
  formModel.validate(editValue.value, rules.value).then((result) => {
165
188
  const list = result == null ? void 0 : result.filter((t) => !t.result);
166
189
  if (!list || !list.length) {
@@ -173,48 +196,92 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
173
196
  });
174
197
  });
175
198
  };
176
- const onEditChange = (val, ...args) => {
177
- var _a, _b, _c, _d, _e, _f, _g, _h;
199
+ const updateEditRow = () => {
200
+ const editRow = {
201
+ ...props.editRow
202
+ };
203
+ lodashUnified.set(editRow, props.column.dataIndex, editValue.value);
204
+ editRowsMap.value[props.rowKey] = {
205
+ ...editRow
206
+ };
207
+ vue.triggerRef(editRowsMap);
208
+ };
209
+ const fetchData = index.useFetchData({
210
+ request: (_a = props.column.edit) == null ? void 0 : _a.request
211
+ });
212
+ const requestOptions = lodashUnified.debounce(async (newRow) => {
213
+ var _a2, _b;
214
+ const row = {
215
+ ...props.item,
216
+ ...newRow
217
+ };
178
218
  const params = {
179
- column: props.column,
180
- record: props.isRowEdit ? props.editRow : props.item,
181
- recordIndexs: recordIndexs.value,
182
- newValue: cellValue.value
219
+ rowKey: props.rowKey
183
220
  };
184
- const value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueParser) == null ? void 0 : _b.call(_a, params)) != null ? _c : editValue.value;
185
- const valueSetter = (_d = props.column.edit) == null ? void 0 : _d.valueSetter;
221
+ (_b = (_a2 = props.column.edit) == null ? void 0 : _a2.dependencies) == null ? void 0 : _b.forEach((dataIndex) => {
222
+ const newValue = lodashUnified.get(row, dataIndex);
223
+ lodashUnified.set(params, dataIndex, newValue);
224
+ });
225
+ loading.value = true;
226
+ const result = await fetchData(params);
227
+ fetchOptions.value = result;
228
+ loading.value = false;
229
+ }, 200);
230
+ const onEditChange = (val, ...args) => {
231
+ var _a2, _b, _c, _d, _e;
232
+ const valueSetter = (_a2 = props.column.edit) == null ? void 0 : _a2.valueSetter;
186
233
  if (valueSetter) {
187
- valueSetter(params);
234
+ valueSetter(cellParams.value);
188
235
  } else {
189
- (_f = (_e = editProps.value) == null ? void 0 : _e.onChange) == null ? void 0 : _f.call(_e, val, ...args);
190
- (_h = (_g = editOnListeners.value) == null ? void 0 : _g.onChange) == null ? void 0 : _h.call(_g, params);
191
- if (props.isRowEdit) {
192
- const record = {
193
- ...props.editRow
194
- };
195
- lodashUnified.set(record, props.column.dataIndex, value);
196
- editRowsMap.value[props.rowKey] = record;
197
- vue.triggerRef(editRowsMap);
198
- } else {
199
- let record = {};
200
- let dataSource = tableContext.rawData.value || [];
201
- recordIndexs.value.forEach((index) => {
202
- record = dataSource[index];
203
- dataSource = record[childrenColumnName.value] || [];
204
- });
205
- lodashUnified.set(record, props.column.dataIndex, value);
206
- vue.triggerRef(tableContext.rawData);
207
- }
236
+ (_c = (_b = editProps.value) == null ? void 0 : _b.onChange) == null ? void 0 : _c.call(_b, val, ...args, cellParams.value);
237
+ (_e = (_d = editOnListeners.value) == null ? void 0 : _d.onChange) == null ? void 0 : _e.call(_d, cellParams.value);
238
+ updateEditRow();
208
239
  }
209
240
  validateEdit();
210
241
  };
242
+ const updateRecordValue = lodashUnified.debounce(async (newValue) => {
243
+ let record = {};
244
+ let dataSource = tableContext.rawData.value || [];
245
+ recordIndexs.value.forEach((index) => {
246
+ record = dataSource[index];
247
+ dataSource = record[tableContext.childrenColumnName.value] || [];
248
+ });
249
+ lodashUnified.set(record, props.column.dataIndex, newValue);
250
+ vue.triggerRef(tableContext.rawData);
251
+ }, 200);
211
252
  vue.watch(cellValue, (value) => {
212
- var _a, _b, _c;
213
- editValue.value = (_c = (_b = (_a = props.column.edit) == null ? void 0 : _a.valueGetter) == null ? void 0 : _b.call(_a, cellParams.value)) != null ? _c : value;
253
+ var _a2, _b, _c;
254
+ editValue.value = (_c = (_b = (_a2 = props.column.edit) == null ? void 0 : _a2.valueGetter) == null ? void 0 : _b.call(_a2, cellParams.value)) != null ? _c : value;
255
+ if (!props.isRowEdit) {
256
+ updateRecordValue(value);
257
+ }
214
258
  }, {
215
259
  immediate: true
216
260
  });
261
+ vue.watch(() => props.editRow, (newRow, oldRow) => {
262
+ var _a2, _b;
263
+ if (hasFetchOptions.value) {
264
+ const isSame = (_b = (_a2 = props.column.edit) == null ? void 0 : _a2.dependencies) == null ? void 0 : _b.every((dataIndex) => {
265
+ const newValue = lodashUnified.get(newRow, dataIndex);
266
+ const oldIndex = lodashUnified.get(oldRow, dataIndex);
267
+ return lodashUnified.isEqual(newValue, oldIndex);
268
+ });
269
+ if (!isSame) {
270
+ requestOptions(newRow);
271
+ }
272
+ }
273
+ });
217
274
  vue.onMounted(() => {
275
+ var _a2;
276
+ if (!props.isRowEdit && !editRowsMap.value[props.rowKey]) {
277
+ editRowsMap.value[props.rowKey] = {
278
+ ...props.item
279
+ };
280
+ vue.triggerRef(editRowsMap);
281
+ }
282
+ if ((_a2 = props.column.edit) == null ? void 0 : _a2.request) {
283
+ requestOptions();
284
+ }
218
285
  setEditingCell({
219
286
  recordIndexs: recordIndexs.value,
220
287
  column: props.column,
@@ -226,7 +293,7 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
226
293
  }, true);
227
294
  });
228
295
  vue.onUnmounted(() => {
229
- var _a, _b, _c;
296
+ var _a2, _b, _c;
230
297
  setEditingCell({
231
298
  recordIndexs: recordIndexs.value,
232
299
  column: props.column,
@@ -236,11 +303,11 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
236
303
  columnKey: props.column.columnKey,
237
304
  validateEdit
238
305
  }, false);
239
- (_c = (_b = (_a = props.column) == null ? void 0 : _a.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, cellParams.value);
306
+ (_c = (_b = (_a2 = props.column) == null ? void 0 : _a2.edit) == null ? void 0 : _b.onEdited) == null ? void 0 : _c.call(_b, cellParams.value);
240
307
  });
241
308
  return () => {
242
- var _a, _b, _c, _d;
243
- const Component = (_a = props.column.edit) == null ? void 0 : _a.component;
309
+ var _a2, _b, _c, _d;
310
+ const Component = (_a2 = props.column.edit) == null ? void 0 : _a2.component;
244
311
  const errorMessage = (_c = (_b = errorList.value) == null ? void 0 : _b[0]) == null ? void 0 : _c.message;
245
312
  const inlineError = (_d = props.column.edit) == null ? void 0 : _d.inlineError;
246
313
  const tmpEditOnListeners = {
@@ -278,10 +345,10 @@ var BodyEditCell = /* @__PURE__ */ vue.defineComponent({
278
345
  "class": `${props.prefixCls}-cell-content-error`
279
346
  }, [vue.createVNode(Icon.CloseCircleFilled, null, null)])],
280
347
  content: () => {
281
- var _a2;
348
+ var _a3;
282
349
  return vue.createVNode("div", {
283
350
  "class": `${props.prefixCls}-cell-content-error-message`
284
- }, [(_a2 = errorList.value) == null ? void 0 : _a2.map((error) => vue.createVNode("div", {
351
+ }, [(_a3 = errorList.value) == null ? void 0 : _a3.map((error) => vue.createVNode("div", {
285
352
  "key": error.message
286
353
  }, [error.message]))]);
287
354
  }