搜索框组件

展示

在这里插入图片描述

代码

ps:@include 为全局引入样式,用于主题切换的,需要请自行修改。

<template>
  <div class="search">
    <el-input class="search-input" type="text" v-model="searchInput" :placeholder="props.placeholder" />
    <el-icon style="font-size: 24px; color: #6c6c6c;margin-right: 15px;" @click="onCamera"><Camera /></el-icon>
    <div class="search-button" @click="onSearch">
      搜索
    </div>
  </div>
</template>

<script setup lang="ts">
import { Ref, ref } from 'vue';

const searchInput:Ref<string> = ref('')

function onCamera() {
  emit('camera')
}

function onSearch() {
  emit('search', searchInput.value)
}

const emit = defineEmits<{
  (e: 'search', val: string),
  (e: 'camera')
}>()

const props = defineProps({
  placeholder: {
    type: String,
    default: ''
  }
})
</script>

<style lang="scss" scoped>
.search {
  @include bg_color('bg-color');
  display: flex;
  align-items: center;
  padding-left: 16px;
  height: 44px;
  border-radius: 80px;
  &-input{
    width: 494.5px;
    :deep(.el-input__wrapper){
      box-shadow: none;
      background-color: transparent;
    } 
  }
  &-button {
    cursor: pointer;
    font-size: 18px;
    font-weight: 600;
    color: #fff;
    margin-right: 6px;
    padding: 5px 19px;
    background: linear-gradient(90deg,#ff9000,#ff5000);
    border-radius: 20px;
  }
}
</style>

属性

属性名描述
placeholder用于输入框占位符

方法

方法名描述
onSearch搜索事件(val:输入框内容)
Camera相机图标点击事件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值