改動layout

This commit is contained in:
威勝 張 2025-02-21 19:18:40 +08:00
parent f134fe3541
commit 6041663842
2 changed files with 57 additions and 38 deletions

View File

@ -531,73 +531,84 @@
</template> </template>
<script setup> <script setup>
import { useHead } from "#app"; import { useHead,useState } from "#app";
import { useRouter } from "vue-router"; // import { useRouter } from "vue-router";
const { $api_host } = useNuxtApp(); //API host import { ref, onMounted } from "vue";
const router = useRouter(); //
const { $api_host } = useNuxtApp();
const router = useRouter();
useHead({ useHead({
title: "Manager", title: "Manager",
meta: [ meta: [
{ charset: "utf-8" }, { charset: "utf-8" },
{ "http-equiv": "X-UA-Compatible", content: "IE=edge" }, { "http-equiv": "X-UA-Compatible", content: "IE=edge" },
{ { name: "viewport", content: "width=device-width, initial-scale=1, shrink-to-fit=no" },
name: "viewport",
content: "width=device-width, initial-scale=1, shrink-to-fit=no",
},
{ name: "description", content: "" }, { name: "description", content: "" },
{ name: "author", content: "" }, { name: "author", content: "" },
], ],
link: [ link: [
{ rel: "stylesheet", href: "/vendor/fontawesome-free/css/all.min.css" }, // `styles.css` public/css { rel: "stylesheet", href: "/vendor/fontawesome-free/css/all.min.css" },
{ rel: "stylesheet", href: "/css/sb-admin-2.min.css" }, { rel: "stylesheet", href: "/css/sb-admin-2.min.css" },
], ],
script: [ script: [
//{ src: 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js', crossorigin: 'anonymous' },
{ src: "/vendor/jquery/jquery.min.js" }, { src: "/vendor/jquery/jquery.min.js" },
{ src: "/vendor/bootstrap/js/bootstrap.bundle.min.js" }, { src: "/vendor/bootstrap/js/bootstrap.bundle.min.js" },
{ src: "/vendor/jquery-easing/jquery.easing.min.js" }, { src: "/vendor/jquery-easing/jquery.easing.min.js" },
{ src: "/js/sb-admin-2.min.js" }, { src: "/js/sb-admin-2.min.js" },
], ],
}); });
//
// 🔐 Token SSR
const authToken = useState("authToken", () => process.client ? localStorage.getItem("token_TCM") || "" : "");
// 🔐
async function logout() { async function logout() {
localStorage.removeItem("token_TCM"); if (process.client) {
localStorage.removeItem("token_TCM");
}
router.push("/").then(() => { router.push("/").then(() => {
window.location.reload(); window.location.reload();
}); });
} }
var token; // // 🔍 Token
const token_check = ()=>{ const token_check = async () => {
// JWT if (!process.client) return; //
token = localStorage.getItem("token_TCM");
console.log(token); const token = authToken.value;
// token console.log("Token:", token);
if (token != null) {
$.ajax({ if (!token) {
type: "GET", console.log("未登入,跳轉回首頁");
url: $api_host + "/Users/token_check_user", //router.push("/Home_pages/");
return;
}
try {
const response = await fetch(`${$api_host}/Users/token_check_user`, {
method: "GET",
headers: { headers: {
Authorization: token, Authorization: token,
}, },
success: function (response) {
// 8
if(response.level<=6 ){
router.push("/Home_pages/");
}
},
error: function (xhr) {
console.log(xhr);
},
}); });
} else {
console.log("pass"); if (!response.ok) throw new Error(`HTTP 錯誤! 狀態碼: ${response.status}`);
const data = await response.json();
console.log("用戶驗證結果:", data);
// 8
if (data.level <= 6) {
router.push("/Home_pages/");
}
} catch (error) {
console.error("驗證失敗:", error);
router.push("/Home_pages/"); router.push("/Home_pages/");
} }
} };
// 🚀
//
onMounted(token_check); onMounted(token_check);
</script> </script>

View File

@ -109,6 +109,7 @@ async function submitCompany() {
const response = await fetch(`${$api_host}/api/Company_detail_table/Add_campany`, { const response = await fetch(`${$api_host}/api/Company_detail_table/Add_campany`, {
method: 'POST', method: 'POST',
headers: { headers: {
Authorization: token,
'Content-Type': 'application/json' 'Content-Type': 'application/json'
}, },
body: JSON.stringify(companyData) body: JSON.stringify(companyData)
@ -126,12 +127,19 @@ async function submitCompany() {
} }
// JWT
const token = localStorage.getItem("token_TCM");
// //
const companies = ref([]); const companies = ref([]);
const get_data = async () => { const get_data = async () => {
try { try {
const response = await fetch(`${$api_host}/api/Company_detail_table/get_all_campany`); const response = await fetch(`${$api_host}/api/Company_detail_table/get_all_campany`,{
method:'GET',
headers: {
Authorization: token,
'Content-Type': 'application/json'
},
});
if (!response.ok) throw new Error(`HTTP 錯誤! 狀態碼: ${response.status}`); if (!response.ok) throw new Error(`HTTP 錯誤! 狀態碼: ${response.status}`);
const data = await response.json(); const data = await response.json();