Compare commits
1 Commits
main
...
feature/la
Author | SHA1 | Date | |
---|---|---|---|
6041663842 |
@ -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>
|
||||
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user