From de8f89b214c060899e6ed4ea805ea76732b42a2f Mon Sep 17 00:00:00 2001 From: xuliangzhan Date: Sat, 19 Feb 2022 15:40:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E6=95=B0=20title-help=20=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=20title-prefix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/views/table/grid/FullEdit.vue | 5 +- package.json | 2 +- packages/form/src/form-item.js | 4 +- packages/form/src/form.js | 37 +++++--------- packages/form/src/render.js | 14 +++--- packages/table/src/cell.js | 6 +-- packages/table/src/column.js | 4 +- packages/table/src/columnInfo.js | 1 + packages/table/src/methods.js | 66 ++++++++---------------- packages/table/src/table.js | 69 +++++--------------------- packages/tooltip/src/tooltip.js | 69 ++++++++++++++++---------- packages/v-x-e-table/src/conf.js | 14 +++--- styles/select.scss | 2 +- styles/tooltip.scss | 2 +- 14 files changed, 120 insertions(+), 175 deletions(-) diff --git a/examples/views/table/grid/FullEdit.vue b/examples/views/table/grid/FullEdit.vue index 3ff9ec1ba..e08c2ab52 100644 --- a/examples/views/table/grid/FullEdit.vue +++ b/examples/views/table/grid/FullEdit.vue @@ -64,8 +64,8 @@ export default { titleWidth: 100, titleAlign: 'right', items: [ - { field: 'name', title: 'app.body.label.name', span: 8, titlePrefix: { message: 'app.body.valid.rName', icon: 'fa fa-exclamation-circle' }, itemRender: { name: '$input', props: { placeholder: '请输入名称' } } }, - { field: 'email', title: '邮件', span: 8, itemRender: { name: '$input', props: { placeholder: '请输入邮件' } } }, + { field: 'name', title: 'app.body.label.name', span: 8, titlePrefix: { message: 'app.body.valid.rName', icon: 'vxe-icon--question' }, itemRender: { name: '$input', props: { placeholder: '请输入名称' } } }, + { field: 'email', title: '邮件', span: 8, titlePrefix: { useHTML: true, message: '点击链接:vxe-table官网', icon: 'vxe-icon--question' }, itemRender: { name: '$input', props: { placeholder: '请输入邮件' } } }, { field: 'nickname', title: '昵称', span: 8, itemRender: { name: '$input', props: { placeholder: '请输入昵称' } } }, { field: 'role', title: '角色', span: 8, folding: true, itemRender: { name: '$input', props: { placeholder: '请输入角色' } } }, { field: 'sex', title: '性别', span: 8, folding: true, titleSuffix: { message: '注意,必填信息!', icon: 'fa fa-info-circle' }, itemRender: { name: '$select', options: [] } }, @@ -124,6 +124,7 @@ export default { field: 'role', title: 'Role', sortable: true, + titleHelp: { useHTML: true, content: '点击链接:vxe-table官网' }, filters: [ { label: '前端开发', value: '前端' }, { label: '后端开发', value: '后端' }, diff --git a/package.json b/package.json index b51ade0e8..fa06b08b5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vxe-table", - "version": "3.5.0-beta.0", + "version": "3.5.0-beta.1", "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...", "scripts": { "serve": "vue-cli-service serve", diff --git a/packages/form/src/form-item.js b/packages/form/src/form-item.js index 373294103..2ae9c78da 100644 --- a/packages/form/src/form-item.js +++ b/packages/form/src/form-item.js @@ -69,9 +69,9 @@ const renderItem = (h, _vm, item, slots) => { } const ons = showTooltip ? { mouseenter (evnt) { - _vm.triggerHeaderHelpEvent(evnt, params) + _vm.triggerTitleTipEvent(evnt, params) }, - mouseleave: _vm.handleTargetLeaveEvent + mouseleave: _vm.handleTitleTipLeaveEvent } : {} return h('div', { class: ['vxe-form--item', item.id, span ? `vxe-col--${span} is--span` : null, className ? (XEUtils.isFunction(className) ? className(params) : className) : '', { diff --git a/packages/form/src/form.js b/packages/form/src/form.js index 4c539b967..b785b7907 100644 --- a/packages/form/src/form.js +++ b/packages/form/src/form.js @@ -64,7 +64,7 @@ function getResetValue (value, resetValue) { function renderItems (h, _vm, itemList) { const { _e, rules, data, collapseAll, validOpts, titleOverflow: allTitleOverflow } = _vm - return itemList.map((item, index) => { + return itemList.map((item) => { const { slots, title, folding, visible, visibleMethod, field, collapseNode, itemRender, showError, errRule, className, titleOverflow, children } = item const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null const span = item.span || _vm.span @@ -111,9 +111,9 @@ function renderItems (h, _vm, itemList) { } const ons = showTooltip ? { mouseenter (evnt) { - _vm.triggerHeaderHelpEvent(evnt, params) + _vm.triggerTitleTipEvent(evnt, params) }, - mouseleave: _vm.handleTargetLeaveEvent + mouseleave: _vm.handleTitleTipLeaveEvent } : {} return h('div', { class: ['vxe-form--item', item.id, span ? `vxe-col--${span} is--span` : null, className ? (XEUtils.isFunction(className) ? className(params) : className) : '', { @@ -123,7 +123,7 @@ function renderItems (h, _vm, itemList) { 'is--active': !itemVisibleMethod || itemVisibleMethod(params), 'is--error': showError }], - key: index + key: item.id }, [ h('div', { class: 'vxe-form--item-inner' @@ -190,6 +190,7 @@ export default { rules: Object, preventSubmit: { type: Boolean, default: () => GlobalConfig.form.preventSubmit }, validConfig: Object, + tooltipConfig: Object, customLayout: { type: Boolean, default: () => GlobalConfig.form.customLayout } }, data () { @@ -199,7 +200,6 @@ export default { formItems: [], tooltipTimeout: null, - tooltipActive: false, tooltipStore: { item: null, visible: false @@ -216,11 +216,7 @@ export default { return Object.assign({}, GlobalConfig.form.validConfig, this.validConfig) }, tooltipOpts () { - const opts = Object.assign({ leaveDelay: 300 }, GlobalConfig.form.tooltipConfig, this.tooltipConfig) - if (opts.enterable) { - opts.leaveMethod = this.handleTooltipLeaveMethod - } - return opts + return Object.assign({}, GlobalConfig.tooltip, GlobalConfig.form.tooltipConfig, this.tooltipConfig) } }, watch: { @@ -283,7 +279,7 @@ export default { */ hasUseTooltip ? h('vxe-tooltip', { ref: 'tooltip', - ...tooltipOpts + props: tooltipOpts }) : _e() ]) }, @@ -375,15 +371,6 @@ export default { this.reset() this.$emit('reset', { data: this.data, $form: this, $event: evnt }) }, - handleTooltipLeaveMethod () { - const { tooltipOpts } = this - setTimeout(() => { - if (!this.tooltipActive) { - this.closeTooltip() - } - }, tooltipOpts.leaveDelay) - return false - }, closeTooltip () { const { tooltipStore } = this const $tooltip = this.$refs.tooltip @@ -398,7 +385,7 @@ export default { } return this.$nextTick() }, - triggerHeaderHelpEvent (evnt, params) { + triggerTitleTipEvent (evnt, params) { const { item } = params const { tooltipStore } = this const $tooltip = this.$refs.tooltip @@ -406,8 +393,9 @@ export default { const content = (overflowElem.textContent || '').trim() const isCellOverflow = overflowElem.scrollWidth > overflowElem.clientWidth clearTimeout(this.tooltipTimeout) - this.tooltipActive = true - this.closeTooltip() + if (tooltipStore.item !== item) { + this.closeTooltip() + } if (content && isCellOverflow) { Object.assign(tooltipStore, { item, @@ -418,10 +406,9 @@ export default { } } }, - handleTargetLeaveEvent () { + handleTitleTipLeaveEvent () { const { tooltipOpts } = this let $tooltip = this.$refs.tooltip - this.tooltipActive = false if ($tooltip) { $tooltip.setActived(false) } diff --git a/packages/form/src/render.js b/packages/form/src/render.js index 31f6efee6..8713ae42e 100644 --- a/packages/form/src/render.js +++ b/packages/form/src/render.js @@ -23,7 +23,7 @@ function renderSuffixIcon (h, titleSuffix) { } export function renderTitle (h, _vm, item) { - const { data } = _vm + const { data, tooltipOpts } = _vm const { slots, field, itemRender, titlePrefix, titleSuffix } = item const compConf = isEnableConf(itemRender) ? VXETable.renderer.get(itemRender.name) : null const params = { data, property: field, item, $form: _vm } @@ -34,9 +34,9 @@ export function renderTitle (h, _vm, item) { (titlePrefix.content || titlePrefix.message) ? h('vxe-tooltip', { props: { - content: getFuncText(titlePrefix.content || titlePrefix.message), - enterable: titlePrefix.enterable, - theme: titlePrefix.theme + ...tooltipOpts, + ...titlePrefix, + content: getFuncText(titlePrefix.content || titlePrefix.message) } }, [ renderPrefixIcon(h, titlePrefix) @@ -60,9 +60,9 @@ export function renderTitle (h, _vm, item) { (titleSuffix.content || titleSuffix.message) ? h('vxe-tooltip', { props: { - content: getFuncText(titleSuffix.content || titleSuffix.message), - enterable: titleSuffix.enterable, - theme: titleSuffix.theme + ...tooltipOpts, + ...titlePrefix, + content: getFuncText(titleSuffix.content || titleSuffix.message) } }, [ renderSuffixIcon(h, titleSuffix) diff --git a/packages/table/src/cell.js b/packages/table/src/cell.js index c6c1e1c36..8f18d53fd 100644 --- a/packages/table/src/cell.js +++ b/packages/table/src/cell.js @@ -7,10 +7,10 @@ import { getColumnConfig } from './util' function renderHelpIcon (h, params) { const { $table, column } = params - const { titleHelp } = column - return titleHelp ? [ + const titlePrefix = column.titlePrefix || column.titleHelp + return titlePrefix ? [ h('i', { - class: ['vxe-cell-help-icon', titleHelp.icon || GlobalConfig.icon.TABLE_HELP], + class: ['vxe-cell-help-icon', titlePrefix.icon || GlobalConfig.icon.TABLE_HELP], on: { mouseenter (evnt) { $table.triggerHeaderHelpEvent(evnt, params) diff --git a/packages/table/src/column.js b/packages/table/src/column.js index f2d231ec0..5651a0d57 100644 --- a/packages/table/src/column.js +++ b/packages/table/src/column.js @@ -68,8 +68,10 @@ const props = { exportMethod: Function, // 表尾单元格数据导出方法 footerExportMethod: Function, - // 标题帮助图标配置项 + // 已废弃,被 titlePrefix 替换 titleHelp: Object, + // 标题帮助图标配置项 + titlePrefix: Object, // 单元格值类型 cellType: String, // 单元格渲染配置项 diff --git a/packages/table/src/columnInfo.js b/packages/table/src/columnInfo.js index 9d8d712a2..638979edf 100644 --- a/packages/table/src/columnInfo.js +++ b/packages/table/src/columnInfo.js @@ -92,6 +92,7 @@ export class ColumnInfo { exportMethod: _vm.exportMethod, footerExportMethod: _vm.footerExportMethod, titleHelp: _vm.titleHelp, + titlePrefix: _vm.titlePrefix, // 自定义参数 params: _vm.params, // 渲染属性 diff --git a/packages/table/src/methods.js b/packages/table/src/methods.js index 05ec47b3c..b131ee83a 100644 --- a/packages/table/src/methods.js +++ b/packages/table/src/methods.js @@ -1902,10 +1902,6 @@ const Methods = { footerSpanMethod, isAllOverflow, visibleColumn - // isMergeLeftFixedExceeded, - // isMergeRightFixedExceeded, - // isMergeFooterLeftFixedExceeded, - // isMergeFooterRightFixedExceeded } = this const containerList = ['main', 'left', 'right'] const emptyPlaceholderElem = $refs.emptyPlaceholder @@ -2023,14 +2019,6 @@ const Methods = { tableColumn = fixedColumn } else { tableColumn = visibleColumn - // 检查固定列是否被合并,合并范围是否超出固定列 - // if (mergeList.length && !isMergeLeftFixedExceeded && fixedType === 'left') { - // tableColumn = fixedColumn - // } else if (mergeList.length && !isMergeRightFixedExceeded && fixedType === 'right') { - // tableColumn = fixedColumn - // } else { - // tableColumn = visibleColumn - // } } } else { tableColumn = visibleColumn @@ -2056,14 +2044,6 @@ const Methods = { tableColumn = fixedColumn } else { tableColumn = visibleColumn - // 检查固定列是否被合并,合并范围是否超出固定列 - // if (mergeFooterList.length && !isMergeFooterLeftFixedExceeded && fixedType === 'left') { - // tableColumn = fixedColumn - // } else if (mergeFooterList.length && !isMergeFooterRightFixedExceeded && fixedType === 'right') { - // tableColumn = fixedColumn - // } else { - // tableColumn = visibleColumn - // } } } else { tableColumn = visibleColumn @@ -2284,6 +2264,7 @@ const Methods = { const isEsc = keyCode === 27 if (isEsc) { this.preventEvent(evnt, 'event.keydown', null, () => { + this.emitEvent('keydown-start', {}, evnt) if (keyboardConfig && mouseConfig && mouseOpts.area && this.handleKeyboardEvent) { this.handleKeyboardEvent(evnt) } else if (actived.row || filterStore.visible || ctxMenuStore.visible) { @@ -2304,6 +2285,7 @@ const Methods = { } } this.emitEvent('keydown', {}, evnt) + this.emitEvent('keydown-end', {}, evnt) }) } }, @@ -2549,19 +2531,9 @@ const Methods = { this.updateCellAreas() this.recalculate(true) }, - handleTooltipLeaveMethod () { - const tooltipOpts = this.tooltipOpts - setTimeout(() => { - if (!this.tooltipActive) { - this.closeTooltip() - } - }, tooltipOpts.leaveDelay) - return false - }, handleTargetEnterEvent (isClear) { const $tooltip = this.$refs.tooltip clearTimeout(this.tooltipTimeout) - this.tooltipActive = true if (isClear) { this.closeTooltip() } else { @@ -2573,7 +2545,6 @@ const Methods = { handleTargetLeaveEvent () { const tooltipOpts = this.tooltipOpts let $tooltip = this.$refs.tooltip - this.tooltipActive = false if ($tooltip) { $tooltip.setActived(false) } @@ -2590,16 +2561,19 @@ const Methods = { }, triggerHeaderHelpEvent (evnt, params) { const { column } = params - const { titleHelp } = column - if (titleHelp.content || titleHelp.message) { + const titlePrefix = column.titlePrefix || column.titleHelp + if (titlePrefix.content || titlePrefix.message) { const { $refs, tooltipStore } = this - const $tooltip = $refs.tooltip - const content = getFuncText(titleHelp.content || titleHelp.message) + const content = getFuncText(titlePrefix.content || titlePrefix.message) this.handleTargetEnterEvent(true) tooltipStore.visible = true - if ($tooltip) { - $tooltip.open(evnt.currentTarget, content) - } + tooltipStore.currOpts = { ...titlePrefix, content: null } + this.$nextTick(() => { + const $tooltip = $refs.tooltip + if ($tooltip) { + $tooltip.open(evnt.currentTarget, content) + } + }) } }, /** @@ -2665,7 +2639,6 @@ const Methods = { const { $refs, tooltipOpts, tooltipStore } = this const { column, row } = params const { showAll, enabled, contentMethod } = tooltipOpts - const tooltip = $refs.tooltip const customContent = contentMethod ? contentMethod(params) : null const useCustom = contentMethod && !XEUtils.eqNull(customContent) const content = useCustom ? customContent : (column.type === 'html' ? overflowElem.innerText : overflowElem.textContent).trim() @@ -2674,11 +2647,15 @@ const Methods = { Object.assign(tooltipStore, { row, column, - visible: true + visible: true, + currOpts: null + }) + this.$nextTick(() => { + const $tooltip = $refs.tooltip + if ($tooltip) { + $tooltip.open(isCellOverflow ? overflowElem : (tipElem || overflowElem), UtilTools.formatText(content)) + } }) - if (tooltip) { - tooltip.open(isCellOverflow ? overflowElem : (tipElem || overflowElem), UtilTools.formatText(content)) - } } return this.$nextTick() }, @@ -2702,7 +2679,8 @@ const Methods = { row: null, column: null, content: null, - visible: false + visible: false, + currOpts: null }) if (tooltip) { tooltip.close() diff --git a/packages/table/src/table.js b/packages/table/src/table.js index 46a7b2a62..ffeb71cb3 100644 --- a/packages/table/src/table.js +++ b/packages/table/src/table.js @@ -389,6 +389,13 @@ export default { insertList: [], removeList: [] }, + // 存放 tooltip 相关信息 + tooltipStore: { + row: null, + column: null, + visible: false, + currOpts: null + }, // 存放数据校验相关信息 validStore: { visible: false, @@ -480,11 +487,10 @@ export default { return Object.assign({}, GlobalConfig.table.checkboxConfig, this.checkboxConfig) }, tooltipOpts () { - const opts = Object.assign({ leaveDelay: 300 }, GlobalConfig.table.tooltipConfig, this.tooltipConfig) - if (opts.enterable) { - opts.leaveMethod = this.handleTooltipLeaveMethod - } - return opts + return Object.assign({}, GlobalConfig.tooltip, GlobalConfig.table.tooltipConfig, this.tooltipConfig) + }, + tipConfig () { + return { ...this.tooltipOpts, ...this.tooltipStore.currOpts } }, validTipOpts () { return Object.assign({ isArrow: false }, this.tooltipOpts) @@ -598,54 +604,6 @@ export default { } return false } - // isMergeLeftFixedExceeded () { - // const { mergeList, columnStore, visibleColumn } = this - // const { leftList } = columnStore - // const lastFCIndex = visibleColumn.indexOf(leftList[leftList.length - 1]) - // for (let i = 0, len = mergeList.length; i < len; i++) { - // const item = mergeList[i] - // if (item.col <= lastFCIndex && item.col + item.colspan > lastFCIndex) { - // return true - // } - // } - // return false - // }, - // isMergeRightFixedExceeded () { - // const { mergeList, columnStore, visibleColumn } = this - // const { rightList } = columnStore - // const firstFCIndex = visibleColumn.indexOf(rightList[0]) - // for (let i = 0, len = mergeList.length; i < len; i++) { - // const item = mergeList[i] - // if (item.col < firstFCIndex && item.col + item.colspan >= firstFCIndex) { - // return true - // } - // } - // return false - // }, - // isMergeFooterLeftFixedExceeded () { - // const { mergeFooterList, columnStore, visibleColumn } = this - // const { leftList } = columnStore - // const lastFCIndex = visibleColumn.indexOf(leftList[leftList.length - 1]) - // for (let i = 0, len = mergeFooterList.length; i < len; i++) { - // const item = mergeFooterList[i] - // if (item.col <= lastFCIndex && item.col + item.colspan > lastFCIndex) { - // return true - // } - // } - // return false - // }, - // isMergeFooterRightFixedExceeded () { - // const { mergeFooterList, columnStore, visibleColumn } = this - // const { rightList } = columnStore - // const firstFCIndex = visibleColumn.indexOf(rightList[0]) - // for (let i = 0, len = mergeFooterList.length; i < len; i++) { - // const item = mergeFooterList[i] - // if (item.col < firstFCIndex && item.col + item.colspan >= firstFCIndex) { - // return true - // } - // } - // return false - // } }, watch: { data (value) { @@ -713,8 +671,6 @@ export default { scrollXStore: {}, // 存放纵向 Y 虚拟滚动相关信息 scrollYStore: {}, - // 存放 tooltip 相关信息 - tooltipStore: {}, // 表格宽度 tableWidth: 0, // 表格高度 @@ -984,7 +940,6 @@ export default { highlightHoverColumn, editConfig, validTipOpts, - tooltipOpts, initStore, columnStore, filterStore, @@ -1176,7 +1131,7 @@ export default { */ hasTip ? h('vxe-tooltip', { ref: 'tooltip', - props: tooltipOpts + props: this.tipConfig }) : _e(), /** * 校验提示 diff --git a/packages/tooltip/src/tooltip.js b/packages/tooltip/src/tooltip.js index c4a9d537d..a10894540 100644 --- a/packages/tooltip/src/tooltip.js +++ b/packages/tooltip/src/tooltip.js @@ -41,6 +41,29 @@ function showTip (_vm) { return _vm.updatePlacement() } +function renderContent (h, _vm) { + const { $scopedSlots, useHTML, tipContent } = _vm + if ($scopedSlots.content) { + return h('div', { + key: 1, + class: 'vxe-table--tooltip-content' + }, $scopedSlots.content.call(this, {})) + } + if (useHTML) { + return h('div', { + key: 2, + class: 'vxe-table--tooltip-content', + domProps: { + innerHTML: tipContent + } + }) + } + return h('div', { + key: 3, + class: 'vxe-table--tooltip-content' + }, UtilTools.formatText(tipContent)) +} + export default { name: 'VxeTooltip', mixins: [vSize], @@ -49,19 +72,19 @@ export default { size: { type: String, default: () => GlobalConfig.tooltip.size || GlobalConfig.size }, trigger: { type: String, default: () => GlobalConfig.tooltip.trigger }, theme: { type: String, default: () => GlobalConfig.tooltip.theme }, - content: [String, Number], + content: { type: [String, Number], default: null }, + useHTML: Boolean, zIndex: [String, Number], isArrow: { type: Boolean, default: true }, enterable: Boolean, enterDelay: { type: Number, default: () => GlobalConfig.tooltip.enterDelay }, - leaveDelay: { type: Number, default: () => GlobalConfig.tooltip.leaveDelay }, - leaveMethod: Function + leaveDelay: { type: Number, default: () => GlobalConfig.tooltip.leaveDelay } }, data () { return { isUpdate: false, visible: false, - message: '', + tipContent: '', tipActive: false, tipTarget: null, tipZindex: 0, @@ -74,7 +97,7 @@ export default { }, watch: { content (value) { - this.message = value + this.tipContent = value }, value (value) { if (!this.isUpdate) { @@ -94,7 +117,7 @@ export default { const { $el, trigger, content, value } = this const parentNode = $el.parentNode let target - this.message = content + this.tipContent = content this.tipZindex = UtilTools.nextZIndex() XEUtils.arrayEach($el.children, (elem, index) => { if (index > 1) { @@ -134,7 +157,7 @@ export default { } }, render (h) { - const { $scopedSlots, vSize, theme, message, tipActive, isArrow, visible, tipStore, enterable } = this + const { $scopedSlots, vSize, theme, tipActive, isArrow, visible, tipStore, enterable } = this let on if (enterable) { on = { @@ -155,9 +178,7 @@ export default { ref: 'tipWrapper', on }, [ - h('div', { - class: 'vxe-table--tooltip-content' - }, $scopedSlots.content ? $scopedSlots.content.call(this, {}) : message), + renderContent(h, this), h('div', { class: 'vxe-table--tooltip-arrow', style: tipStore.arrowStyle @@ -165,8 +186,8 @@ export default { ].concat($scopedSlots.default ? $scopedSlots.default.call(this, {}) : [])) }, methods: { - open (target, message) { - return this.toVisible(target || this.target, message) + open (target, content) { + return this.toVisible(target || this.target, content) }, close () { this.tipTarget = null @@ -193,13 +214,13 @@ export default { this.tipZindex = UtilTools.nextZIndex() } }, - toVisible (target, message) { + toVisible (target, content) { if (target) { const { trigger, enterDelay } = this this.tipActive = true this.tipTarget = target - if (message) { - this.message = message + if (content) { + this.tipContent = content } if (enterDelay && trigger === 'hover') { this.showDelayTip() @@ -246,17 +267,15 @@ export default { wrapperMouseenterEvent () { this.tipActive = true }, - wrapperMouseleaveEvent (evnt) { - const { leaveMethod, trigger, enterable, leaveDelay } = this + wrapperMouseleaveEvent () { + const { trigger, enterable, leaveDelay } = this this.tipActive = false - if (!leaveMethod || leaveMethod({ $event: evnt }) !== false) { - if (enterable && trigger === 'hover') { - setTimeout(() => { - if (!this.tipActive) { - this.close() - } - }, leaveDelay) - } + if (enterable && trigger === 'hover') { + setTimeout(() => { + if (!this.tipActive) { + this.close() + } + }, leaveDelay) } } } diff --git a/packages/v-x-e-table/src/conf.js b/packages/v-x-e-table/src/conf.js index 5f0d178dd..1e19248c4 100644 --- a/packages/v-x-e-table/src/conf.js +++ b/packages/v-x-e-table/src/conf.js @@ -37,10 +37,9 @@ export default { // trigger: 'default', strict: true }, - // tooltipConfig: { - // theme: 'dark', - // enterable: false - // }, + tooltipConfig: { + enterable: true + }, validConfig: { showMessage: true, message: 'default' @@ -244,12 +243,15 @@ export default { }, form: { // preventSubmit: false, + // size: null, + // colon: false, validConfig: { showMessage: true, autoPos: true }, - // size: null, - // colon: false, + tooltipConfig: { + enterable: true + }, titleAsterisk: true }, input: { diff --git a/styles/select.scss b/styles/select.scss index 76d1873a3..0f57cd897 100644 --- a/styles/select.scss +++ b/styles/select.scss @@ -104,7 +104,7 @@ .vxe-select-option { padding: 0 10px; - max-width: 400px; + max-width: 600px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; diff --git a/styles/tooltip.scss b/styles/tooltip.scss index 789d2b6e8..5581eac51 100644 --- a/styles/tooltip.scss +++ b/styles/tooltip.scss @@ -7,7 +7,7 @@ top: -100%; left: -100%; font-size: 12px; - max-width: 500px; + max-width: 600px; border-radius: $vxe-border-radius; padding: 8px 12px; white-space: normal;