diff --git a/packages/form-item/index.vue b/packages/form-item/index.vue index cf85532..4c6af76 100644 --- a/packages/form-item/index.vue +++ b/packages/form-item/index.vue @@ -62,9 +62,9 @@ export default { colProps(props) { return props.reduce((result, key) => { if (this[key]) { - result[key] = this[key]; + result[key] = Number(this[key]); } else { - result[key] = this.zForm ? this.zForm[key] : undefined; + result[key] = this.zForm ? Number(this.zForm[key]) : undefined; } return result; }, {}); diff --git a/packages/table/editor.vue b/packages/table/editor.vue index f228924..32487db 100644 --- a/packages/table/editor.vue +++ b/packages/table/editor.vue @@ -143,23 +143,30 @@ function editorRender(h, context, item) { } else { setValue(val); } - if (item.on && item.on.input) { - item.on.input(val); - } - }; - const blurEvent = val => { - if (item.on && item.on.blur) { - item.on.blur(val); - } }; + // 向外提供的值 + const editorScope = { item, value, index: scope.$index, ...scope, onInput: inputEvent }; // 编辑表单项配置 let itemProps = item.props || {}; if (typeof item.props === 'function') { - itemProps = item.props({ item, value, index: scope.$index, ...scope, onInput: inputEvent }); + itemProps = item.props(editorScope); } let itemAttrs = item.attrs || {}; if (typeof item.attrs === 'function') { - itemAttrs = item.attrs({ item, value, index: scope.$index, ...scope, onInput: inputEvent }); + itemAttrs = item.attrs(editorScope); + } + let itemOn = item.on || {}; + if (typeof item.on === 'function') { + itemOn = item.on(editorScope); + } + if (itemOn.input) { + const itemOnInput = itemOn.input; + itemOn.input = function(e) { + inputEvent(e); + itemOnInput(e); + }; + } else { + itemOn.input = inputEvent; } // 编辑器统一配置 const editorProps = get(contentProps, 'editor') || {}; @@ -167,11 +174,11 @@ function editorRender(h, context, item) { vnode = h(item.is, { attrs: itemAttrs, props: { ...editorProps, ...itemProps, value }, - on: { input: inputEvent, blur: blurEvent }, + on: itemOn, }); // 自定义具名插槽 if (editorSlot) { - return editorSlot({ item, value, index: scope.$index, ...scope, onInput: inputEvent }); + return editorSlot(editorScope); } // 需要校验时外层嵌套校验组件 if (editorProps.validate) { -- libgit2 0.21.0