From 41294eb33f687d2db0b9aecc6738ba9e9e78afd7 Mon Sep 17 00:00:00 2001 From: K <1175047471@qq.com> Date: Tue, 9 Jan 2024 14:26:17 +0800 Subject: [PATCH] fix(components): resolve ineffectiveness of table editRow --- .../src/components/editable/EditableCell.vue | 27 +++++++------------ src/components/Table/src/types/table.ts | 17 ++++++------ 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue index 49228bf..4df2fa2 100644 --- a/src/components/Table/src/components/editable/EditableCell.vue +++ b/src/components/Table/src/components/editable/EditableCell.vue @@ -53,8 +53,8 @@ export default defineComponent({ const { prefixCls } = useDesign('editable-cell') - const getComponent = computed(() => props.column.edit && props.column?.editComponent || 'Input') - const getRule = computed(() => props.column.edit && props.column?.editRule) + const getComponent = computed(() => props.column?.editComponent || 'Input') + const getRule = computed(() => props.column?.editRule) const getRuleOpen = computed(() => { return unref(ruleMessage) && unref(ruleOpen) @@ -65,9 +65,6 @@ export default defineComponent({ return ['Checkbox', 'Switch'].includes(component) }) const getDisable = computed(() => { - if (!props.column.edit) - return false - const { editDynamicDisabled } = props.column let disabled = false if (isBoolean(editDynamicDisabled)) @@ -88,7 +85,7 @@ export default defineComponent({ const value = isCheckValue ? (isNumber(val) || isBoolean(val) ? val : !!val) : val - let compProps = (props.column?.edit && props.column?.editComponentProps) ?? ({} as any) + let compProps = props.column?.editComponentProps ?? ({} as any) const { record, column, index } = props if (isFunction(compProps)) @@ -125,7 +122,7 @@ export default defineComponent({ } const getValues = computed(() => { - const editValueMap = props.column.edit ? props.column.editValueMap : null + const { editValueMap } = props.column const value = unref(currentValueRef) @@ -166,18 +163,12 @@ export default defineComponent({ }) watchEffect(() => { - if (!props.column.edit) - return - const { editable } = props.column if (isBoolean(editable) || isBoolean(unref(getRowEditable))) isEdit.value = !!editable || unref(getRowEditable) }) function handleEdit() { - if (!props.column.edit) - return - if (unref(getRowEditable) || unref(props.column?.editRow)) return ruleMessage.value = '' @@ -220,7 +211,7 @@ export default defineComponent({ async function handleSubmitRule() { const { column, record } = props - const editRule = column.edit ? column.editRule : false + const { editRule } = column const currentValue = unref(currentValueRef) if (editRule) { @@ -302,7 +293,7 @@ export default defineComponent({ } async function handleEnter() { - if (props.column?.edit && props.column?.editRow) + if (props.column?.editRow) return handleSubmit() @@ -326,7 +317,7 @@ export default defineComponent({ } function onClickOutside() { - if (props.column?.edit && (props.column?.editable || unref(getRowEditable))) + if (props.column?.editable || unref(getRowEditable)) return const component = unref(getComponent) @@ -422,7 +413,7 @@ export default defineComponent({ onClick={this.handleEdit} >
- {(this.column.edit && this.column.editRender) + {this.column.editRender ? this.column.editRender({ text: this.value, record: this.record as Recordable, @@ -431,7 +422,7 @@ export default defineComponent({ }) : this.getValues ?? '\u00A0'}
- {(this.column.edit && !this.column.editRow) && } + {!this.column.editRow && } {this.isEdit && ( diff --git a/src/components/Table/src/types/table.ts b/src/components/Table/src/types/table.ts index 006d836..93635fa 100644 --- a/src/components/Table/src/types/table.ts +++ b/src/components/Table/src/types/table.ts @@ -449,15 +449,10 @@ export interface DefaultBasicColumn extends Omit, 'filters'> { auth?: RoleEnum | RoleEnum[] | string | string[] // 业务控制是否显示 ifShow?: boolean | ((column: BasicColumn) => boolean) - - /** - * default is not editable - */ - edit?: false } -export interface EditableBasicColumn extends Omit, 'edit'> { - edit: true +export interface EditableBasicColumn extends DefaultBasicColumn { + edit?: boolean editRow?: boolean editable?: boolean editComponent: C @@ -485,7 +480,13 @@ export interface EditableBasicColumn extends O type EditableBasicColumns = C extends any ? EditableBasicColumn : never -export type BasicColumn = DefaultBasicColumn | EditableBasicColumns +export type BasicColumn = + | ( + DefaultBasicColumn & { + [K in Exclude, keyof DefaultBasicColumn>]?: never + } + ) + | EditableBasicColumns export interface ColumnChangeParam { dataIndex: string