fix 修复显示多个校验消息提示无效问题
This commit is contained in:
@@ -59,6 +59,7 @@ Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
|
||||
* [x] Merged footer items
|
||||
* [x] Import/Export/Print
|
||||
* [x] Show/Hide column
|
||||
* [x] Drag and drop/Customize column sorting
|
||||
* [x] Loading
|
||||
* [x] Formatted cell
|
||||
* [x] Slot - template
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
* [x] 合并表尾
|
||||
* [x] 导入/导出/打印
|
||||
* [x] 显示/隐藏列
|
||||
* [x] 拖拽/自定义列排序
|
||||
* [x] 加载中
|
||||
* [x] 格式化内容
|
||||
* [x] 自定义插槽 - 模板
|
||||
|
||||
@@ -59,6 +59,7 @@ Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
|
||||
* [x] 合併錶尾
|
||||
* [x] 導入/匯出/列印
|
||||
* [x] 顯示/隱藏列
|
||||
* [x] 拖拽/自定義列排序
|
||||
* [x] 加載中
|
||||
* [x] 格式化內容
|
||||
* [x] 自定義插槽 - 範本
|
||||
|
||||
@@ -1040,7 +1040,7 @@
|
||||
"description": "严格模式,选中后不能取消"
|
||||
},
|
||||
"vxe-radio-group/options": {
|
||||
"type": "{ value, label }[]",
|
||||
"type": "{ value, label, disabled }[]",
|
||||
"description": "选项列表"
|
||||
},
|
||||
"vxe-radio-group/option-props": {
|
||||
@@ -1120,7 +1120,7 @@
|
||||
"description": "是否禁用"
|
||||
},
|
||||
"vxe-checkbox-group/options": {
|
||||
"type": "{ value, label }[]",
|
||||
"type": "{ value, label, disabled }[]",
|
||||
"description": "选项列表"
|
||||
},
|
||||
"vxe-checkbox-group/option-props": {
|
||||
@@ -1437,7 +1437,7 @@
|
||||
},
|
||||
"vxe-button/mode": {
|
||||
"type": "string",
|
||||
"description": "模式"
|
||||
"description": "按钮模式,支持文本和按钮"
|
||||
},
|
||||
"vxe-button/title": {
|
||||
"type": "string",
|
||||
@@ -1445,7 +1445,7 @@
|
||||
},
|
||||
"vxe-button/type": {
|
||||
"type": "string",
|
||||
"description": "类型"
|
||||
"description": "原生按钮类型"
|
||||
},
|
||||
"vxe-button/size": {
|
||||
"type": "string",
|
||||
@@ -1501,12 +1501,16 @@
|
||||
},
|
||||
"vxe-button-group/mode": {
|
||||
"type": "string",
|
||||
"description": "模式"
|
||||
"description": "按钮模式,支持文本和按钮"
|
||||
},
|
||||
"vxe-button-group/size": {
|
||||
"type": "string",
|
||||
"description": "尺寸"
|
||||
},
|
||||
"vxe-button-group/status": {
|
||||
"type": "string",
|
||||
"description": "按钮的图标"
|
||||
},
|
||||
"vxe-button-group/round": {
|
||||
"type": "boolean",
|
||||
"description": "圆角边框"
|
||||
|
||||
@@ -490,6 +490,7 @@
|
||||
"attributes": [
|
||||
"mode",
|
||||
"size",
|
||||
"status",
|
||||
"round",
|
||||
"circle",
|
||||
"disabled",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vxe-table",
|
||||
"version": "4.6.7-beta.2",
|
||||
"version": "4.6.7",
|
||||
"description": "一个基于 vue 的 PC 端表单/表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、JSON 配置式...",
|
||||
"scripts": {
|
||||
"update": "npm install --legacy-peer-deps",
|
||||
|
||||
@@ -129,7 +129,43 @@ export default defineComponent({
|
||||
|
||||
const computeBtnMode = computed(() => {
|
||||
const { type, mode } = props
|
||||
return (mode === 'text' || type === 'text') ? 'text' : 'button'
|
||||
if (mode === 'text' || type === 'text' || ($xebuttonggroup && $xebuttonggroup.props.mode === 'text')) {
|
||||
return 'text'
|
||||
}
|
||||
return 'button'
|
||||
})
|
||||
|
||||
const computeBtnStatus = computed(() => {
|
||||
const { status } = props
|
||||
if (status) {
|
||||
return status
|
||||
}
|
||||
if ($xebuttonggroup) {
|
||||
return $xebuttonggroup.props.status
|
||||
}
|
||||
return ''
|
||||
})
|
||||
|
||||
const computeBtnRound = computed(() => {
|
||||
const { round } = props
|
||||
if (round) {
|
||||
return round
|
||||
}
|
||||
if ($xebuttonggroup) {
|
||||
return $xebuttonggroup.props.round
|
||||
}
|
||||
return false
|
||||
})
|
||||
|
||||
const computeBtnCircle = computed(() => {
|
||||
const { circle } = props
|
||||
if (circle) {
|
||||
return circle
|
||||
}
|
||||
if ($xebuttonggroup) {
|
||||
return $xebuttonggroup.props.circle
|
||||
}
|
||||
return false
|
||||
})
|
||||
|
||||
const updateZindex = () => {
|
||||
@@ -394,10 +430,13 @@ export default defineComponent({
|
||||
})
|
||||
|
||||
const renderVN = () => {
|
||||
const { className, popupClassName, transfer, title, type, round, circle, destroyOnClose, status, name, disabled, loading } = props
|
||||
const { className, popupClassName, transfer, title, type, destroyOnClose, name, disabled, loading } = props
|
||||
const { inited, showPanel } = reactData
|
||||
const isFormBtn = computeIsFormBtn.value
|
||||
const btnMode = computeBtnMode.value
|
||||
const btnStatus = computeBtnStatus.value
|
||||
const btnRound = computeBtnRound.value
|
||||
const btnCircle = computeBtnCircle.value
|
||||
const vSize = computeSize.value
|
||||
if (slots.dropdowns) {
|
||||
return h('div', {
|
||||
@@ -411,9 +450,9 @@ export default defineComponent({
|
||||
ref: refButton,
|
||||
class: ['vxe-button', `type--${btnMode}`, {
|
||||
[`size--${vSize}`]: vSize,
|
||||
[`theme--${status}`]: status,
|
||||
'is--round': round,
|
||||
'is--circle': circle,
|
||||
[`theme--${btnStatus}`]: btnStatus,
|
||||
'is--round': btnRound,
|
||||
'is--circle': btnCircle,
|
||||
'is--disabled': disabled || loading,
|
||||
'is--loading': loading
|
||||
}],
|
||||
@@ -458,9 +497,9 @@ export default defineComponent({
|
||||
ref: refButton,
|
||||
class: ['vxe-button', `type--${btnMode}`, className ? (XEUtils.isFunction(className) ? className({ $button: $xebutton }) : className) : '', {
|
||||
[`size--${vSize}`]: vSize,
|
||||
[`theme--${status}`]: status,
|
||||
'is--round': round,
|
||||
'is--circle': circle,
|
||||
[`theme--${btnStatus}`]: btnStatus,
|
||||
'is--round': btnRound,
|
||||
'is--circle': btnCircle,
|
||||
'is--disabled': disabled || loading,
|
||||
'is--loading': loading
|
||||
}],
|
||||
|
||||
@@ -10,6 +10,11 @@ export default defineComponent({
|
||||
name: 'VxeButtonGroup',
|
||||
props: {
|
||||
options: Array as PropType<VxeButtonGroupPropTypes.Options>,
|
||||
mode: String as PropType<VxeButtonGroupPropTypes.Mode>,
|
||||
status: String as PropType<VxeButtonGroupPropTypes.Status>,
|
||||
round: Boolean as PropType<VxeButtonGroupPropTypes.Round>,
|
||||
circle: Boolean as PropType<VxeButtonGroupPropTypes.Circle>,
|
||||
className: [String, Function] as PropType<VxeButtonGroupPropTypes.ClassName>,
|
||||
disabled: Boolean as PropType<VxeButtonGroupPropTypes.Disabled>,
|
||||
size: { type: String as PropType<VxeButtonGroupPropTypes.Size>, default: () => GlobalConfig.buttonGroup.size || GlobalConfig.size }
|
||||
},
|
||||
@@ -51,10 +56,10 @@ export default defineComponent({
|
||||
Object.assign($xebuttongroup, buttonGroupMethods, buttonGroupPrivateMethods)
|
||||
|
||||
const renderVN = () => {
|
||||
const { options } = props
|
||||
const { className, options } = props
|
||||
const defaultSlot = slots.default
|
||||
return h('div', {
|
||||
class: 'vxe-button-group'
|
||||
class: ['vxe-button-group', className ? (XEUtils.isFunction(className) ? className({ $buttonGroup: $xebuttongroup }) : className) : '']
|
||||
}, defaultSlot ? defaultSlot({}) : (options ? options.map((item, index) => {
|
||||
return h(VxeButtonComponent, {
|
||||
key: index,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { defineComponent, h, createApp, reactive } from 'vue'
|
||||
import VxeModalComponent from '../modal'
|
||||
import { defineComponent, h, createApp, resolveComponent, reactive, ComponentOptions } from 'vue'
|
||||
|
||||
import { VxeModalDefines } from '../../types/all'
|
||||
|
||||
@@ -18,7 +17,7 @@ const VxeDynamics = defineComponent({
|
||||
const { modals } = dynamicStore
|
||||
return h('div', {
|
||||
class: 'vxe-dynamics--modal'
|
||||
}, modals.map((item) => h(VxeModalComponent, item)))
|
||||
}, modals.map((item) => h(resolveComponent('vxe-modal') as ComponentOptions, item)))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -712,7 +712,7 @@ export default defineComponent({
|
||||
* @param {String/Object} code 字符串或对象
|
||||
*/
|
||||
commitProxy (proxyTarget: string | VxeToolbarPropTypes.ButtonConfig, ...args: any[]) {
|
||||
const { toolbarConfig, pagerConfig, editRules } = props
|
||||
const { toolbarConfig, pagerConfig, editRules, validConfig } = props
|
||||
const { tablePage, formData } = reactData
|
||||
const isMsg = computeIsMsg.value
|
||||
const proxyOpts = computeProxyOpts.value
|
||||
@@ -940,7 +940,7 @@ export default defineComponent({
|
||||
let restPromise: Promise<any> = Promise.resolve()
|
||||
if (editRules) {
|
||||
// 只校验新增和修改的数据
|
||||
restPromise = $xetable.validate(body.insertRecords.concat(updateRecords))
|
||||
restPromise = $xetable[validConfig && validConfig.msgMode === 'full' ? 'fullValidate' : 'validate'](body.insertRecords.concat(updateRecords))
|
||||
}
|
||||
return restPromise.then((errMap) => {
|
||||
if (errMap) {
|
||||
|
||||
10
types/button-group.d.ts
vendored
10
types/button-group.d.ts
vendored
@@ -26,16 +26,26 @@ export interface VxeButtonGroupConstructor extends VxeComponentBase, VxeButtonGr
|
||||
export type VxeButtonGroupProps = {
|
||||
size?: VxeButtonGroupPropTypes.Size
|
||||
options?: VxeButtonGroupPropTypes.Options
|
||||
mode?: VxeButtonGroupPropTypes.Mode
|
||||
status?: VxeButtonGroupPropTypes.Status
|
||||
round?: VxeButtonGroupPropTypes.Round
|
||||
circle?: VxeButtonGroupPropTypes.Circle
|
||||
/**
|
||||
* 是否禁用
|
||||
*/
|
||||
disabled?: VxeButtonGroupPropTypes.Disabled
|
||||
className?: VxeButtonGroupPropTypes.ClassName
|
||||
}
|
||||
|
||||
export namespace VxeButtonGroupPropTypes {
|
||||
export type Size = SizeType
|
||||
export type Options = VxeButtonProps[]
|
||||
export type Round = boolean
|
||||
export type Circle = boolean
|
||||
export type Disabled = boolean
|
||||
export type Mode = VxeButtonPropTypes.Mode
|
||||
export type Status = VxeButtonPropTypes.Status
|
||||
export type ClassName = string | ((params: { $buttonGroup: VxeButtonGroupConstructor }) => string)
|
||||
}
|
||||
|
||||
export interface ButtonPrivateComputed {
|
||||
|
||||
6
types/table.d.ts
vendored
6
types/table.d.ts
vendored
@@ -1968,6 +1968,12 @@ export namespace VxeTablePropTypes {
|
||||
* 用于 mouse-config.area & column.type=checkbox|radio,开启空格键切换复选框或单选框状态功能
|
||||
*/
|
||||
isChecked?: boolean
|
||||
/**
|
||||
* 用于 mouse-config.area,方向键光标锁,开启后将支持两种状态
|
||||
* 非聚焦式输入状态:默认情况下,可以按方向键移动单元格。
|
||||
* 聚焦式输入状态:如果需要移动光标,可以按 F2 键或者鼠标左键点击输入框,切换为聚焦输入状态,就可以用方向键左右移动光标
|
||||
*/
|
||||
arrowCursorLock?: boolean
|
||||
/**
|
||||
* 用于 mouse-config.area,是否将回车键行为改成 Tab 键行为
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user