From 05030ee9843d49f864576cd39b6e7f78a880527c Mon Sep 17 00:00:00 2001 From: Werheng Zhang <36580301+werheng@users.noreply.github.com> Date: 星期三, 27 三月 2024 14:22:54 +0800 Subject: [PATCH] refactor: 优化代码 (#3695) --- src/components/Table/src/components/editable/EditableCell.vue | 40 +++++++++++++++++++++------------------- 1 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue index fdcb55d..2445d90 100644 --- a/src/components/Table/src/components/editable/EditableCell.vue +++ b/src/components/Table/src/components/editable/EditableCell.vue @@ -65,6 +65,19 @@ return ['Checkbox', 'Switch'].includes(component); }); + const getDisable = computed(() => { + const { editDynamicDisabled } = props.column; + let disabled = false; + if (isBoolean(editDynamicDisabled)) { + disabled = editDynamicDisabled; + } + if (isFunction(editDynamicDisabled)) { + const { record } = props; + disabled = editDynamicDisabled({ record, currentValue: currentValueRef.value }); + } + return disabled; + }); + const getComponentProps = computed(() => { const isCheckValue = unref(getIsCheckComp); let compProps = props.column?.editComponentProps ?? ({} as any); @@ -117,18 +130,7 @@ const dataKey = (dataIndex || key) as string; set(record, dataKey, value); } - const getDisable = computed(() => { - const { editDynamicDisabled } = props.column; - let disabled = false; - if (isBoolean(editDynamicDisabled)) { - disabled = editDynamicDisabled; - } - if (isFunction(editDynamicDisabled)) { - const { record } = props; - disabled = editDynamicDisabled({ record, currentValue: currentValueRef.value }); - } - return disabled; - }); + const getValues = computed(() => { const { editValueMap } = props.column; @@ -149,6 +151,11 @@ return option?.label ?? value; }); + const getRowEditable = computed(() => { + const { editable } = props.record || {}; + return !!editable; + }); + const getWrapperStyle = computed((): CSSProperties => { if (unref(getIsCheckComp) || unref(getRowEditable)) { return {}; @@ -161,11 +168,6 @@ const getWrapperClass = computed(() => { const { align = 'center' } = props.column; return `edit-cell-align-${align}`; - }); - - const getRowEditable = computed(() => { - const { editable } = props.record || {}; - return !!editable; }); watchEffect(() => { @@ -191,7 +193,7 @@ }); } - async function handleChange(e: any) { + async function handleChange(e: any, ...rest: any[]) { const component = unref(getComponent); if (!e) { currentValueRef.value = e; @@ -205,7 +207,7 @@ currentValueRef.value = e; } const onChange = unref(getComponentProps)?.onChangeTemp; - if (onChange && isFunction(onChange)) onChange(...arguments); + if (onChange && isFunction(onChange)) onChange(e, ...rest); table.emit?.('edit-change', { column: props.column, -- Gitblit v1.8.0