index.vue 975 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <template>
  2. <div class="search">
  3. <div class="flex">
  4. <el-input class="search-input" @clear="clear" clearable v-model="input" size="default" :placeholder="placeholder" :prefix-icon="Search" />
  5. <el-button color="#ac014d" class="search-button" size="default" @click="search" >搜索</el-button>
  6. </div>
  7. </div>
  8. </template>
  9. <script setup lang="ts">
  10. import { ref } from "vue";
  11. import { Search } from "@element-plus/icons-vue";
  12. const props = defineProps({
  13. placeholder: {
  14. type: String,
  15. default: "请输入您要搜索的内容",
  16. },
  17. });
  18. const emits = defineEmits(["clear", "search"]);
  19. const { placeholder } = props;
  20. const input = ref("");
  21. const clear = () => {
  22. emits("clear");
  23. };
  24. const search = () => {
  25. emits("search", input.value);
  26. };
  27. </script>
  28. <style lang="scss" scoped>
  29. .search {
  30. &-input {
  31. width: 240px;
  32. margin-right: 12px;
  33. box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.06);
  34. }
  35. &-button {
  36. margin-right: 16px;
  37. }
  38. }
  39. </style>