diff --git a/front/src/lib/jwt.ts b/front/src/lib/jwt.ts
index f0249b6..c35e01d 100644
--- a/front/src/lib/jwt.ts
+++ b/front/src/lib/jwt.ts
@@ -29,7 +29,10 @@ export function CheckAndGetJWT(tx: 'raw'): string | null;
export function CheckAndGetJWT(tx: 'raw' | 'parsed'): WtsJWT | string | null {
if (!browser) {
- return null;
+ return {
+ access: 'user',
+ name: '请刷新页面'
+ } as WtsJWT;
}
let token: string;
token = localStorage.getItem('jwt');
diff --git a/front/src/routes/op/ticket_search/+page.svelte b/front/src/routes/op/ticket_search/+page.svelte
index 1ef0bc0..db50303 100644
--- a/front/src/routes/op/ticket_search/+page.svelte
+++ b/front/src/routes/op/ticket_search/+page.svelte
@@ -29,15 +29,9 @@
import { criteria } from '$lib/states/ticketCriteriaSearch.svelte';
import { goto } from '$app/navigation';
import type { WtsStatus, WtsPriority, WtsCategory, WtsISP } from '$lib/types/enum';
- import { WtsJWT } from '$lib/jwt';
onMount(() => Guard(IsOperator));
-
- let token: WtsJWT = $state({} as WtsJWT);
-
- onMount(() => {
- token = CheckAndGetJWT('parsed');
- });
+ onMount(() => setTimeout(() => goto('/op/ticket_search'), 500));//暂时的权宜之计
let req = $state(criteria.r as FilterTicketsReq);
@@ -84,7 +78,7 @@
}
const allZones = Object.keys(ZoneMap) as WtsZone[];
- const allStatuses = IsAdmin(token.access)
+ const allStatuses = IsAdmin(CheckAndGetJWT('parsed').access)
? (Object.keys(StatusMap) as WtsStatus[])
: (Object.keys(StatusMap).filter(
(status) => status !== 'solved' && status !== 'canceled'
@@ -118,7 +112,9 @@
'delay',
'escalated'
] as const satisfies readonly WtsStatus[];
- const statusOptions: readonly WtsStatus[] = statusOptionsAdmin; //之前的区分没有意义,在后端会拦截的,在这里高花样,好像反而会破坏正常功能,感觉这个页面还是重写的样子。。
+ const statusOptions: readonly WtsStatus[] = IsAdmin(CheckAndGetJWT('parsed').access)
+ ? statusOptionsAdmin
+ : statusOptionsUser;
const priorityOptions = [
'highest',
@@ -195,7 +191,7 @@
选择您需要检索报修工单的条件
-{#if IsAdmin(token.access)} +{#if IsAdmin(CheckAndGetJWT('parsed').access)}