搜索功能(el-form): 展开/收起

需求:

当搜索条件过多,需要多行显示,并且可以收起/展开

// 展开

 // 收起

 // 左侧菜单收起

 代码: 

// search-coloct ==> 你可以定义一个全局的样式
// 主要通过 searchCol 进行判断是否收起
<div :class="{'search-coloct':!searchCol}">
                            <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
                                <el-form-item label="时间" style="width: 308px">
                                    <el-date-picker
                                        v-model="dateRange"
                                        value-format="YYYY-MM-DD"
                                        type="daterange"
                                        range-separator="-"
                                        start-placeholder="开始日期"
                                        end-placeholder="结束日期"
                                    ></el-date-picker>
                                </el-form-item>
                                <el-form-item label="证照类型名称" prop="dictName">
                                    <el-input
                                        v-model="queryParams.dictName"
                                        placeholder="请输入证照类型名称"
                                        clearable
                                        style="width: 240px"
                                        @keyup.enter="handleQuery"
                                    />
                                </el-form-item>
                                <el-form-item label="100类免证明" prop="status">
                                    <el-select
                                        v-model="queryParams.status"
                                        placeholder="请选择"
                                        clearable
                                        style="width: 240px"
                                    >
                                        <el-option
                                            v-for="dict in sys_normal_disable"
                                            :key="dict.value"
                                            :label="dict.label"
                                            :value="dict.value"
                                        />
                                    </el-select>
                                </el-form-item>
                                <el-form-item label="服务方式" prop="prove">
                                    <el-select
                                        v-model="queryParams.prove"
                                        placeholder="请选择"
                                        clearable
                                        style="width: 240px"
                                    >
                                        <el-option
                                            v-for="dict in sys_normal_disable"
                                            :key="dict.value"
                                            :label="dict.label"
                                            :value="dict.value"
                                        />
                                    </el-select>
                                </el-form-item>
                                <el-form-item label="跨域" prop="crossDomain">
                                    <el-select
                                        v-model="queryParams.crossDomain"
                                        placeholder="请选择"
                                        clearable
                                        style="width: 240px"
                                    >
                                        <el-option
                                            v-for="dict in sys_normal_disable"
                                            :key="dict.value"
                                            :label="dict.label"
                                            :value="dict.value"
                                        />
                                    </el-select>
                                </el-form-item>
                            </el-form>
                        </div>
<div style="display: flex;justify-content: center;">
                            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
                            <el-button icon="Refresh" @click="resetQuery">重置</el-button>

                            <el-button type="text" size="small" @click="closeSearch">
                                {{searchCol?'收起':'展开'}}
                                <svg-icon :class="{'is-active':searchCol}" icon-class="down"
                                          class="icon"/>
                            </el-button>
                        </div>


<script setup>

const searchCol = ref(true)
    
function offsetHeightNow() {
    setTimeout(() => {
        let height = proxy.$refs.element.offsetHeight;
        // 这里的判断是,当左边的菜单收起来的时候,右边的搜索框的宽度会变宽,就不需要收起了,可以直接显示
        if (document.body.clientWidth < 1440) {
            rightBottomDiv.value = height - 110
        } else {
            rightBottomDiv.value = height - 130
        }
    }, 100);
};

onMounted(() => {
    offsetHeightNow()

    window.addEventListener('resize', () => {
        rightBottomDiv.value = 0
        offsetHeightNow()
    })
});

// 展开/收起
function closeSearch() {
    rightBottomDiv.value = 0
    searchCol.value = !searchCol.value
    offsetHeightNow()
}

</script>

// 样式

.search-coloct {
    height: 48px;
    overflow: hidden;
  }

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用el-collapse组件来实现展开/收起的查询条件,结合el-form组件实现以下功能: 1. 在el-collapse组件中添加多个el-collapse-item组件,每个el-collapse-item组件代表一个查询条件; 2. 在每个el-collapse-item组件中嵌套一个el-form组件,用于展示查询条件的表单; 3. 在el-form组件中添加查询条件的表单控件,如el-input、el-select等; 4. 在el-collapse-item组件的title属性中添加展开/收起的按钮,如el-button或el-icon等; 5. 在展开/收起按钮的点击事件中,通过v-if或v-show来控制el-collapse-item组件的显示/隐藏。 以下是示例代码: ``` <template> <div> <el-collapse> <el-collapse-item title="查询条件1"> <el-form ref="form1" :model="form1" label-width="100px"> <el-form-item label="姓名"> <el-input v-model="form1.name"></el-input> </el-form-item> <el-form-item label="年龄"> <el-select v-model="form1.age" placeholder="请选择"> <el-option label="18岁以下" value="1"></el-option> <el-option label="18-30岁" value="2"></el-option> <el-option label="30岁以上" value="3"></el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" @click="search1">查询</el-button> </el-form-item> </el-form> </el-collapse-item> <el-collapse-item title="查询条件2"> <el-form ref="form2" :model="form2" label-width="100px"> <el-form-item label="性别"> <el-radio-group v-model="form2.gender"> <el-radio label="male">男</el-radio> <el-radio label="female">女</el-radio> </el-radio-group> </el-form-item> <el-form-item label="职业"> <el-input v-model="form2.job"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="search2">查询</el-button> </el-form-item> </el-form> </el-collapse-item> </el-collapse> </div> </template> <script> export default { data() { return { form1: { name: '', age: '' }, form2: { gender: '', job: '' } } }, methods: { search1() { // 查询条件1的查询方法 }, search2() { // 查询条件2的查询方法 } } } </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开发那点事儿~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值