diff --git a/examples/views/page/form-new/form-render.vue b/examples/views/page/form-new/form-render.vue
index 12ce754..a8d8bf9 100644
--- a/examples/views/page/form-new/form-render.vue
+++ b/examples/views/page/form-new/form-render.vue
@@ -8,14 +8,14 @@
{{ item.group.title || item.group }}
-
+
- onInput({ value: v, item })">
+ onInput({ value: v, item })" v-on="bindItemEvent(item)">
@@ -28,6 +28,7 @@ export default {
props: {
list: Array,
model: Object,
+ value: Object,
itemKey: String,
titleClass: String,
contentClass: String,
@@ -48,7 +49,7 @@ export default {
},
/**
* @description 组件有值输入时的事件
- * @param {Object} data { value => '组件值'; item => '表单项配置' }
+ * @param {Object} data { value => 组件值; item => 表单项配置 }
*/
onInput({ value, item }) {
if (this.itemKey) {
@@ -75,7 +76,30 @@ export default {
*/
onFormItemChange(value) {
this.$emit('form-item-change', value);
- }
+ },
+ /**
+ * @description 当表单项有手动更新时的事件
+ * @param {Any} 表单项值
+ */
+ onItemUpdate(value) {
+ this.$emit('item-update', value);
+ },
+ /**
+ * @description 绑定表单项事件
+ * @param {Object} item 表单项配置
+ * @returns {Function} 事件函数
+ */
+ bindItemEvent(item) {
+ if (item.on) {
+ if (typeof item.on === 'function') {
+ return item.on({ model: this.value, update: ({ name, value }) => this.$emit('item-update', { name, value }) });
+ } else {
+ return item.on
+ }
+ } else {
+ return undefined
+ }
+ },
}
}
diff --git a/examples/views/page/form-new/index.vue b/examples/views/page/form-new/index.vue
index 118bf5a..ae82625 100644
--- a/examples/views/page/form-new/index.vue
+++ b/examples/views/page/form-new/index.vue
@@ -1,14 +1,14 @@
{{ formModel }}
-
+
{{ list }}