Header.tsx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { css } from "@linaria/core";
  2. import { Space } from "ant-design-vue";
  3. import { defineComponent } from "vue";
  4. import Menu from "./Menu";
  5. import { useCategory } from "@/modules";
  6. export default defineComponent(() => {
  7. const storeCategory = useCategory();
  8. return () => {
  9. const topCate = storeCategory.categoryTree.filter((e: CategoryItem) => {
  10. return e.isHome == false;
  11. });
  12. const mainCate = storeCategory.categoryTree.filter((e: CategoryItem) => {
  13. return e.isHome == true;
  14. });
  15. return (
  16. <div class={HeaderLayout}>
  17. <div class={"lay_top flex align-center justify-between"}>
  18. <div>立足四川、面向全国,贴近行业,服务社会。</div>
  19. <div>
  20. <Space size={50}>
  21. {topCate.map((e) => {
  22. return (
  23. <router-link to={`/detail/${e._id}`}>{e.name}</router-link>
  24. );
  25. })}
  26. </Space>
  27. </div>
  28. </div>
  29. <div class={"lay_menu flex"}>
  30. <div class={"menu_logo"}>
  31. <router-link to="/">
  32. <img src={getImageUrl("logo_header.png")} />
  33. </router-link>
  34. </div>
  35. <div class={"menu flex-1"}>
  36. <Menu data={mainCate} />
  37. </div>
  38. </div>
  39. </div>
  40. );
  41. };
  42. });
  43. const HeaderLayout = css`
  44. .lay_top {
  45. padding: 10px 30px;
  46. background: #242424;
  47. color: var(--vt-c-white);
  48. a {
  49. color: var(--vt-c-white);
  50. &:hover {
  51. text-decoration: underline;
  52. }
  53. }
  54. }
  55. .lay_menu {
  56. align-items: center;
  57. padding: 16px 30px;
  58. background: var(--vt-c-primary);
  59. .menu_logo {
  60. img {
  61. height: 54px;
  62. object-fit: contain;
  63. }
  64. }
  65. .menu {
  66. padding-left: 50px;
  67. }
  68. }
  69. `;