返回

element UI 组件封装--搜索表单(含插槽和内嵌组件)

发布时间:2022-12-01 13:51:53 486
# webkit

 

element UI 组件封装--搜索表单(含插槽和内嵌组件)_插槽

组件封装–搜索表单 searchForm.vue

可根据需要,参考姓名和工作自行增加更多常用的默认搜索项

<template>
<div style="padding: 30px; width: 300px">
<el-form
ref="searchFormRef"
:model="searchData"
:label-width="searchOption.labelWidth || '80px'"
:size="searchOption.size || 'mini'"
>
<el-form-item
v-if="searchOption.name"
label="姓名"
prop="name"
:rules="{ required: true, message: '不能为空' }"
>
<el-input v-model="searchData.name"></el-input>
</el-form-item>

<SearchJob v-if="searchOption.job" :searchData="searchData" />
<slot> </slot>

<el-form-item>
<el-button type="primary" @click="search">搜索</el-button>
<el-button type="primary" @click="reset">重置</el-button>
</el-form-item>
</el-form>
</div>
</template>

<script>
import SearchJob from "./search_job.vue";
export default {
components: {
SearchJob,
},
props: {
searchData: Object,
searchOption: Object,
},
methods: {
search() {
this.$refs.searchFormRef.validate((valid) => {
if (valid) {
alert("通过表单校验,开始搜索!");
}
});
},
reset() {
this.$emit("reset");
},
},
};
</script>

内嵌组件 search_job.vue

具体原理可参考

<template>
<el-form-item
label="工作"
prop="job"
:rules="{ required: true, message: '不能为空' }"
>
<el-input v-model="searchData.job"></el-input>
</el-form-item>
</template>

<script>
export default {
props: {
searchData: Object,
},
};
</script>

使用方法 index.vue

  • 可直接在 SearchForm 内部通过默认插槽添加更多搜索项
  • 必要变量有 searchData 和 searchOption
  • 必要方法有 reset
<template>
<div style="padding: 30px; width: 300px">
<SearchForm
:searchData="searchData"
:searchOption="searchOption"
@reset="reset"
>
<el-form-item
label="爱好"
prop="hobby"
:rules="{ required: true, message: '不能为空' }"
>
<el-input v-model="searchData.hobby"></el-input>
</el-form-item>
</SearchForm>
</div>
</template>

<script>
import SearchForm from "./searchForm.vue";
export default {
components: {
SearchForm,
},
data() {
return {
searchData: {},
// 搜索表单的配置--是否显示默认搜索项
searchOption: {
labelWidth: "100px",
size: "small",
name: true,
job: true,
},
};
},
methods: {
reset() {
this.searchData = {};
},
},
};
</script>

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线