基质喷涂
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

82 lines
2.7 KiB

<template>
<header class="h-[--headerHeight] bg-primary flex items-center text-white">
<img class="w-[83px] ml-6" src="@/assets/logo.png" alt="logo" />
<div v-if="route.path !== '/home'" class="w-0.5 h-5 bg-white mx-3"></div>
<p class="text-lg">{{ pageNameMap[route.path] }}</p>
<img :src="`${isWifiNormal ? icon_wifi : icon_wifi2}`" alt="" class="ml-auto w-8" />
<div v-if="route.path === '/home'" class="btn-light px-5 py-1 mx-6 rounded min-w-[102px]">
<el-dropdown trigger="click">
<div class="el-dropdown-link flex items-center">
<img src="@/assets/menu.svg" alt="menu" />
<p class="text-lg ml-2 text-primary">菜单</p>
</div>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item>
<div class="flex items-center gap-4 text-lg text-primary" @click="router.push('/matrixManage')">
<img :src="icon_substrate" class="w-[18px]" alt="" />
<span>基质管理</span>
</div>
</el-dropdown-item>
<el-dropdown-item>
<div class="flex items-center gap-4 text-lg text-primary" @click="router.push('/debug')">
<img :src="icon_debug" class="w-[18px]" alt="" />
<span>调试</span>
</div>
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
<div v-else class="btn-light px-5 py-1 mx-6 rounded" @click="onReturnBtnClick">
<img src="@/assets/return.svg" alt="return" />
<p class="text-lg ml-2 text-primary">返回</p>
</div>
</header>
</template>
<script setup lang="ts">
import { watch, ref, computed, onMounted, onUnmounted } from "vue";
import Time from "@/components/Time.vue";
import icon_substrate from "@/assets/menu/icon_substrate.svg";
import icon_debug from "@/assets/menu/icon_debug.svg";
import icon_wifi from "@/assets/icon_wifi.svg";
import icon_wifi2 from "@/assets/icon_wifi_red.svg";
import { useRoute, useRouter } from "vue-router";
import { createWebSocket, sharedWsUrl } from "@/services/socket";
const route = useRoute();
const router = useRouter();
const isWifiNormal = ref(true);
onMounted(() => {
const wsClient = createWebSocket(sharedWsUrl);
const subscription = wsClient.stateOb.subscribe(state => {
isWifiNormal.value = state === "open";
});
onUnmounted(() => {
subscription.unsubscribe();
});
});
const pageNameMap: Record<string, string> = {
"/": "基质喷涂转印仪",
"/environment": "环境设置",
"/spray": "喷涂设置",
"/preSpray": "喷涂设置",
"/print": "转印设置",
"/matrixManage": "基质管理",
"/matrixCraft": "工艺管理",
"/debug": "调试",
"/history": "历史喷涂",
};
function onReturnBtnClick() {
if (route.path !== "/home") {
router.back();
} else {
// router.push("/menu");
}
}
</script>