From 427436b3786174bfc4e5034ab60fd30fc703d73c Mon Sep 17 00:00:00 2001 From: xuliangzhan Date: Fri, 26 Apr 2024 11:33:11 +0800 Subject: [PATCH] =?UTF-8?q?fix=20button=20=E4=BF=AE=E5=A4=8D=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E4=B8=8B=E6=8B=89=E6=97=A0=E6=B3=95=E7=A7=BB=E5=87=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20#2368?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- packages/button/src/button.ts | 15 ++++++++++----- packages/button/src/group.ts | 7 ++++++- packages/v-x-e-table/src/conf.ts | 3 +++ 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index a1aee25d8..6f69c6d65 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vxe-table", - "version": "4.6.4", + "version": "4.6.5", "description": "一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...", "scripts": { "update": "npm install --legacy-peer-deps", diff --git a/packages/button/src/button.ts b/packages/button/src/button.ts index eaa15db83..c2e9e7bab 100644 --- a/packages/button/src/button.ts +++ b/packages/button/src/button.ts @@ -127,7 +127,7 @@ export default defineComponent({ return false }) - const computeBtnType = computed(() => { + const computeBtnMode = computed(() => { const { type, mode } = props return (mode === 'text' || type === 'text') ? 'text' : 'button' }) @@ -280,6 +280,11 @@ export default defineComponent({ mouseenterEvent(evnt) } + const mouseleaveTargetEvent = (evnt: MouseEvent) => { + closePanel() + mouseleaveEvent(evnt) + } + const mouseenterEvent = (evnt: MouseEvent) => { emit('mouseenter', { $event: evnt }) } @@ -392,7 +397,7 @@ export default defineComponent({ const { className, popupClassName, transfer, title, type, round, circle, destroyOnClose, status, name, disabled, loading } = props const { inited, showPanel } = reactData const isFormBtn = computeIsFormBtn.value - const btnType = computeBtnType.value + const btnMode = computeBtnMode.value const vSize = computeSize.value if (slots.dropdowns) { return h('div', { @@ -404,7 +409,7 @@ export default defineComponent({ }, [ h('button', { ref: refButton, - class: ['vxe-button', `type--${btnType}`, { + class: ['vxe-button', `type--${btnMode}`, { [`size--${vSize}`]: vSize, [`theme--${status}`]: status, 'is--round': round, @@ -417,7 +422,7 @@ export default defineComponent({ type: isFormBtn ? type : 'button', disabled: disabled || loading, onMouseenter: mouseenterTargetEvent, - onMouseleave: mouseleaveEvent, + onMouseleave: mouseleaveTargetEvent, onClick: clickEvent }, renderContent().concat([ h('i', { @@ -451,7 +456,7 @@ export default defineComponent({ } return h('button', { ref: refButton, - class: ['vxe-button', `type--${btnType}`, className ? (XEUtils.isFunction(className) ? className({ $button: $xebutton }) : className) : '', { + class: ['vxe-button', `type--${btnMode}`, className ? (XEUtils.isFunction(className) ? className({ $button: $xebutton }) : className) : '', { [`size--${vSize}`]: vSize, [`theme--${status}`]: status, 'is--round': round, diff --git a/packages/button/src/group.ts b/packages/button/src/group.ts index bb5d6b001..f9002e031 100644 --- a/packages/button/src/group.ts +++ b/packages/button/src/group.ts @@ -55,7 +55,12 @@ export default defineComponent({ const defaultSlot = slots.default return h('div', { class: 'vxe-button-group' - }, defaultSlot ? defaultSlot({}) : (options ? options.map(item => h(VxeButtonComponent, item)) : [])) + }, defaultSlot ? defaultSlot({}) : (options ? options.map((item, index) => { + return h(VxeButtonComponent, { + key: index, + ...item + }) + }) : [])) } $xebuttongroup.renderVN = renderVN diff --git a/packages/v-x-e-table/src/conf.ts b/packages/v-x-e-table/src/conf.ts index 8e15b4955..a630874e0 100644 --- a/packages/v-x-e-table/src/conf.ts +++ b/packages/v-x-e-table/src/conf.ts @@ -326,6 +326,9 @@ const GlobalConfig: VXETableConfigOptions = { // size: null, // transfer: false }, + buttonGroup: { + // size: null + }, radio: { // size: null, strict: true