浏览代码

feat(frontend): 登陆接口对接

Myon 3 年之前
父节点
当前提交
ce0b2f3ae3

+ 2 - 0
.gitignore

@@ -72,3 +72,5 @@ TestData/
 /internal/logic/emby_helper/Logs
 /internal/pkg/downloader/ChineseSubFinderSettings.json
 /ChineseSubFinderSettings.json
+
+/*.iml

+ 1 - 1
frontend/.env.development

@@ -1 +1 @@
-BACKEND_URL=http://127.0.0.1:19035
+BACKEND_URL=/api

+ 4 - 1
frontend/src/pages/access/login/index.vue

@@ -87,7 +87,10 @@ const submit = async () => {
   }
   const userData = {username: form.username, ...res};
   Object.assign(userState, userData)
-  LocalStorage.set('token', userData)
+  LocalStorage.set('token', {
+    accessToken: userData.access_token,
+    username: form.username
+  })
   router.push('/')
 }
 </script>

+ 11 - 13
frontend/src/pages/jobs/index.vue

@@ -1,24 +1,23 @@
 <template>
   <q-page class="q-pa-md">
     <q-card class="q-pa-md" flat>
-      <header class="row items-center">
+      <header class="column q-gutter-md">
         <div>
           当前任务状态:
           <q-badge v-if="systemState.running" color="positive">运行中</q-badge>
           <q-badge v-else color="grey">未运行</q-badge>
         </div>
-        <q-space/>
-        <q-btn
-          v-if="systemState.running"
-          label="强制停止"
-          color="negative"
-          @click="stopJobs"
-          :loading="submitting"
-        ></q-btn>
-        <q-btn v-else label="立即运行" color="primary" @click="startJobs" :loading="submitting"></q-btn>
+        <div>
+          <q-btn
+            v-if="systemState.running"
+            label="强制停止"
+            color="negative"
+            @click="stopJobs"
+            :loading="submitting"
+          ></q-btn>
+          <q-btn v-else label="立即运行" color="primary" @click="startJobs" :loading="submitting"></q-btn>
+        </div>
       </header>
-      <q-separator class="q-my-md"/>
-      <job-list-table class="q-mt-md"/>
     </q-card>
   </q-page>
 </template>
@@ -29,7 +28,6 @@ import { useQuasar } from 'quasar';
 import { ref } from 'vue';
 import JobApi from 'src/api/JobApi';
 import { SystemMessage } from 'src/utils/Message';
-import JobListTable from 'pages/jobs/JobListTable';
 
 const $q = useQuasar();
 

+ 13 - 13
frontend/src/router/routes.js

@@ -6,23 +6,23 @@ const routes = [
     component: () => import('layouts/MainLayout.vue'),
     redirect: { name: 'settings' },
     children: [
-      {
-        name: 'home',
-        path: '/home',
-        component: () => import('pages/index.vue'),
-        meta: { title: '首页', icon: 'home' },
-      },
-      {
-        name: 'library',
-        path: 'library',
-        component: () => import('pages/library/index.vue'),
-        meta: { title: '库', icon: 'video_library' },
-      },
+      // {
+      //   name: 'home',
+      //   path: '/home',
+      //   component: () => import('pages/index.vue'),
+      //   meta: { title: '首页', icon: 'home' },
+      // },
+      // {
+      //   name: 'library',
+      //   path: 'library',
+      //   component: () => import('pages/library/index.vue'),
+      //   meta: { title: '库', icon: 'video_library' },
+      // },
       {
         name: 'jobs',
         path: 'jobs',
         component: () => import('pages/jobs/index.vue'),
-        meta: { title: '任务列表', icon: 'cloud_queue' },
+        meta: { title: '任务', icon: 'cloud_queue' },
       },
       {
         name: 'settings',

+ 11 - 0
frontend/src/utils/http/interceptors/auth-header.js

@@ -0,0 +1,11 @@
+import { userState } from 'src/store/userState';
+
+export default {
+  onRequestFullFilled: (req) => {
+    const { accessToken } = userState;
+    if (accessToken) {
+      req.headers.Authorization = `Bearer ${accessToken}`;
+    }
+    return req;
+  },
+};