<template>
<!-- scpsForm 重写表单 -->
<div>
<rewriteForm ref="form"
size='small'> </rewriteForm>
</div>
</template>
<script>
export default {
provide() {
return {
parentThis: this
};
},
components: {
rewriteForm: {
inject: ["parentThis"],
functional: true,
data() {
return {};
},
methods: {},
props: ["tag"],
render(h, context) {
let slot;
if (context.children) {
slot = [...context.children, ...context.parent.$slots.default];
} else {
slot = context.parent.$slots.default;
}
if (!context.data.attrs) {
context.data.attrs = {};
}
let props = context.parent.$attrs;
Object.assign(context.data.attrs, props);
let node = h("el-form", context.data, [...slot]);
return node;
}
}
},
data() {
return {};
},
methods: {
resetFields() {
this.$refs.form.resetFields();
},
validate(callback) {
this.$refs.form.validate(callback);
},
clearValidate(props) {
this.$refs.form.clearValidate(props);
},
validateField(props, callback) {
this.$refs.form.validateField(props, callback);
}
},
mounted() {},
created() {}
};
</script>
封装组件——表单(vue+element)
最新推荐文章于 2024-03-12 17:22:19 发布