改動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>
<script setup>
import { useHead } from "#app";
import { useRouter } from "vue-router"; //
const { $api_host } = useNuxtApp(); //API host
const router = useRouter(); //
import { useHead,useState } from "#app";
import { useRouter } from "vue-router";
import { ref, onMounted } from "vue";
const { $api_host } = useNuxtApp();
const router = useRouter();
useHead({
title: "Manager",
meta: [
{ charset: "utf-8" },
{ "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: "author", content: "" },
],
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" },
],
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/bootstrap/js/bootstrap.bundle.min.js" },
{ src: "/vendor/jquery-easing/jquery.easing.min.js" },
{ src: "/js/sb-admin-2.min.js" },
],
});
//
// 🔐 Token SSR
const authToken = useState("authToken", () => process.client ? localStorage.getItem("token_TCM") || "" : "");
// 🔐
async function logout() {
if (process.client) {
localStorage.removeItem("token_TCM");
}
router.push("/").then(() => {
window.location.reload();
});
}
var token; //
const token_check = ()=>{
// JWT
token = localStorage.getItem("token_TCM");
console.log(token);
// token
if (token != null) {
$.ajax({
type: "GET",
url: $api_host + "/Users/token_check_user",
// 🔍 Token
const token_check = async () => {
if (!process.client) return; //
const token = authToken.value;
console.log("Token:", token);
if (!token) {
console.log("未登入,跳轉回首頁");
//router.push("/Home_pages/");
return;
}
try {
const response = await fetch(`${$api_host}/Users/token_check_user`, {
method: "GET",
headers: {
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/");
}
};
//
// 🚀
onMounted(token_check);
</script>

View File

@ -109,6 +109,7 @@ async function submitCompany() {
const response = await fetch(`${$api_host}/api/Company_detail_table/Add_campany`, {
method: 'POST',
headers: {
Authorization: token,
'Content-Type': 'application/json'
},
body: JSON.stringify(companyData)
@ -126,12 +127,19 @@ async function submitCompany() {
}
// JWT
const token = localStorage.getItem("token_TCM");
//
const companies = ref([]);
const get_data = async () => {
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}`);
const data = await response.json();