Search.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <van-sticky :offset-top="Offset">
  3. <van-search class="my-search" left-icon="diy-search" v-model.trim="input" placeholder="搜索文档" />
  4. </van-sticky>
  5. </template>
  6. <script lang="ts">
  7. import { Component, Vue, Prop } from 'vue-property-decorator'
  8. import { Icon, Search, Sticky } from 'vant'
  9. // @ is an alias to /src
  10. @Component({
  11. name: 'Search',
  12. components: {
  13. [Search.name]: Search,
  14. [Sticky.name]: Sticky,
  15. [Icon.name]: Icon
  16. }
  17. })
  18. export default class Empty extends Vue {
  19. @Prop({ default: 'empty-image' }) state?: string | undefined;
  20. input = ''
  21. get Offset () {
  22. const tempN = document.querySelector('.j-header.jy-app-header') as HTMLDivElement
  23. if (tempN) {
  24. return tempN.offsetHeight
  25. } else {
  26. return 0
  27. }
  28. }
  29. }
  30. </script>
  31. <style scoped lang="scss">
  32. .my-search {
  33. &::v-deep.van-search {
  34. padding: 7px 16px;
  35. .van-search__content {
  36. border-radius: 8px;
  37. background: #F5F6F7;
  38. border: 1px solid rgba(0, 0, 0, 0.05);
  39. }
  40. .van-cell {
  41. align-items: center;
  42. height: 38px;
  43. }
  44. .van-field__left-icon {
  45. height: 20px;
  46. margin-right: 8px;
  47. }
  48. .van-field__control {
  49. color: #171826;
  50. font-family: PingFang SC;
  51. font-size: 14px;
  52. letter-spacing: 0px;
  53. text-align: left;
  54. }
  55. }
  56. @include diy-icon('search', 20, 20)
  57. }
  58. </style>