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;