|
@@ -1,12 +1,16 @@
|
|
|
import { css } from "@linaria/core";
|
|
|
-import { Space } from "ant-design-vue";
|
|
|
-import { defineComponent } from "vue";
|
|
|
+import { MenuOutlined } from "@ant-design/icons-vue";
|
|
|
+import { defineComponent, reactive } from "vue";
|
|
|
import Menu from "./Menu";
|
|
|
import { useCategory } from "@/modules";
|
|
|
+import { Drawer } from "ant-design-vue";
|
|
|
+import MobileMenu from "./MobileMenu";
|
|
|
|
|
|
export default defineComponent(() => {
|
|
|
const storeCategory = useCategory();
|
|
|
-
|
|
|
+ const state = reactive({
|
|
|
+ visible: false,
|
|
|
+ });
|
|
|
return () => {
|
|
|
const topCate = storeCategory.categoryTree.filter((e: CategoryItem) => {
|
|
|
return e.isHome == false;
|
|
@@ -17,15 +21,13 @@ export default defineComponent(() => {
|
|
|
return (
|
|
|
<div class={HeaderLayout}>
|
|
|
<div class={"lay_top flex align-center justify-between"}>
|
|
|
- <div>立足四川、面向全国,贴近行业,服务社会。</div>
|
|
|
+ <div class={"tips"}>立足四川、面向全国,贴近行业,服务社会。</div>
|
|
|
<div class={"top_links"}>
|
|
|
- <Space size={0}>
|
|
|
- {topCate.map((e) => {
|
|
|
- return (
|
|
|
- <router-link to={`/detail/${e._id}`}>{e.name}</router-link>
|
|
|
- );
|
|
|
- })}
|
|
|
- </Space>
|
|
|
+ {topCate.map((e) => {
|
|
|
+ return (
|
|
|
+ <router-link to={`/detail/${e._id}`}>{e.name}</router-link>
|
|
|
+ );
|
|
|
+ })}
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class={"lay_menu flex"}>
|
|
@@ -37,6 +39,27 @@ export default defineComponent(() => {
|
|
|
<div class={"menu flex-1"}>
|
|
|
<Menu data={mainCate} />
|
|
|
</div>
|
|
|
+ <div class={"mobileMenu"}>
|
|
|
+ <MenuOutlined
|
|
|
+ onClick={() => {
|
|
|
+ state.visible = true;
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <Drawer
|
|
|
+ width={200}
|
|
|
+ closable={false}
|
|
|
+ visible={state.visible}
|
|
|
+ onClose={() => {
|
|
|
+ state.visible = false;
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <MobileMenu
|
|
|
+ onChange={() => {
|
|
|
+ state.visible = false;
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </Drawer>
|
|
|
</div>
|
|
|
</div>
|
|
|
);
|
|
@@ -47,7 +70,9 @@ const HeaderLayout = css`
|
|
|
padding: 10px 30px;
|
|
|
background: #242424;
|
|
|
color: var(--vt-c-white);
|
|
|
-
|
|
|
+ .tips {
|
|
|
+ width: 300px;
|
|
|
+ }
|
|
|
a {
|
|
|
color: var(--vt-c-white);
|
|
|
&:hover {
|
|
@@ -55,8 +80,13 @@ const HeaderLayout = css`
|
|
|
}
|
|
|
}
|
|
|
.top_links {
|
|
|
- .ant-space-item {
|
|
|
- width: 130px;
|
|
|
+ flex: 1;
|
|
|
+ padding-left: 50px;
|
|
|
+ text-align: right;
|
|
|
+ a {
|
|
|
+ display: inline-block;
|
|
|
+ width: 10%;
|
|
|
+ max-width: 130px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
}
|
|
@@ -67,12 +97,39 @@ const HeaderLayout = css`
|
|
|
background: var(--vt-c-primary);
|
|
|
.menu_logo {
|
|
|
img {
|
|
|
+ max-width: 300px;
|
|
|
height: 54px;
|
|
|
object-fit: contain;
|
|
|
}
|
|
|
}
|
|
|
+ .mobileMenu {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
.menu {
|
|
|
padding-left: 50px;
|
|
|
}
|
|
|
}
|
|
|
+ @media screen and (max-width: 1280px) {
|
|
|
+ .lay_top {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ .lay_menu {
|
|
|
+ padding: 16px 20px;
|
|
|
+ justify-content: space-between;
|
|
|
+ .menu_logo {
|
|
|
+ img {
|
|
|
+ height: 30px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .menu {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ .mobileMenu {
|
|
|
+ display: block;
|
|
|
+ color: #fff;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 28px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
`;
|