ZaiZai 1 ano atrás
pai
commit
47c1f9841f

+ 21 - 0
src/api/modules/menu.js

@@ -0,0 +1,21 @@
+import { HcApi } from '../request/index'
+import website from '~src/config/index'
+
+export const getRoutes = (msg = true) => HcApi({
+    url: '/api/blade-system/menu/routes',
+    method: 'get',
+    params: {
+        sysType: website.clientId,
+    },
+}, msg)
+
+export const getButtons = (msg = true) => HcApi({
+    url: '/api/blade-system/menu/buttons',
+    method: 'get',
+}, msg)
+
+export const getAazyList = (form, msg = true) => HcApi({
+    url: '/api/blade-system/menu/lazy-list',
+    method: 'get',
+    params: form,
+}, msg)

+ 73 - 0
src/api/modules/user.js

@@ -0,0 +1,73 @@
+import { HcApi } from '../request/index'
+import website from '~src/config/index'
+import md5 from 'js-md5'
+
+export const userLogin = ({ tenantId, deptId, roleId, username, password, type, key, code }) => HcApi({
+    url: '/api/blade-auth/oauth/token',
+    method: 'post',
+    headers: {
+        'Tenant-Id': tenantId,
+        'Dept-Id': (website.switchMode ? deptId : ''),
+        'Role-Id': (website.switchMode ? roleId : ''),
+        'Captcha-Key': key,
+        'Captcha-Code': code,
+    },
+    params: {
+        tenantId,
+        username,
+        password: md5(password),
+        grant_type: (website.captchaMode ? 'captcha' : 'password'),
+        scope: 'all',
+        type,
+    },
+})
+
+export const refreshToken = (refresh_token, tenantId, deptId, roleId) => HcApi({
+    url: '/api/blade-auth/oauth/token',
+    method: 'post',
+    headers: {
+        'Tenant-Id': tenantId,
+        'Dept-Id': (website.switchMode ? deptId : ''),
+        'Role-Id': (website.switchMode ? roleId : ''),
+    },
+    params: {
+        tenantId,
+        refresh_token,
+        grant_type: 'refresh_token',
+        scope: 'all',
+    },
+})
+
+export const logout = () => HcApi({
+    url: '/api/blade-auth/oauth/logout',
+    method: 'get',
+})
+
+export const registerGuest = (form, oauthId) => HcApi({
+    url: '/api/blade-user/register-guest',
+    method: 'post',
+    params: {
+        tenantId: form.tenantId,
+        name: form.name,
+        account: form.account,
+        password: form.password,
+        oauthId,
+    },
+})
+
+export const getUserInfo = () => HcApi({
+    url: '/api/blade-auth/oauth/user-info',
+    method: 'get',
+})
+
+export const sendLogs = (list) => HcApi({
+    url: '/api/blade-auth/oauth/logout',
+    method: 'post',
+    data: list,
+})
+
+export const loginByToken = (form) => HcApi({
+    url: '/api/blade-user/loginByToken',
+    method: 'post',
+    params: form,
+})

+ 2 - 2
src/config/index.js

@@ -12,7 +12,7 @@ export default {
     switchMode: false, // 是否开启部门切换模式
     tokenTime: 1740,
     tokenHeader: 'Blade-Auth',
-    tokenKey: 'saber-access-token',
-    refreshTokenKey: 'saber-refresh-token',
+    tokenKey: 'analysis-access-token',
+    refreshTokenKey: 'analysis-refresh-token',
     ...config,
 }

+ 1 - 1
src/config/index.json

@@ -1,6 +1,6 @@
 {
     "version": "20230607160059",
-    "target": "http://39.108.216.210:8090",
+    "target": "http://192.168.0.102",
     "vite": {
         "port": 5187,
         "host": "0.0.0.0"

+ 5 - 5
src/store/modules/app.js

@@ -1,6 +1,6 @@
 import pinia from '~src/store/init'
 import { useAppStore } from '~src/store'
-//import { getButtons } from '~api/menu'
+import { getButtons } from '~api/menu'
 import { getStore } from 'hc-vue3-ui'
 import { ArrToOneObj, getArrValue } from 'js-fast-way'
 
@@ -8,7 +8,7 @@ const store = useAppStore(pinia)
 
 //按钮初始化
 export const initButtons = async () => {
-    /*const value = getStore('buttons')
+    const value = getStore('buttons')
     if (!value) {
         const { error, data } = await getButtons()
         if (error) return Promise.reject('error')
@@ -18,12 +18,12 @@ export const initButtons = async () => {
         return Promise.resolve(true)
     } else {
         return Promise.resolve(true)
-    }*/
+    }
 }
 
 //设置按钮
 const setButtonsData = async (data) => {
-    /*let buttonsArr = {}
+    let buttonsArr = {}
     await ArrToOneObj(data, 'code', buttonsArr)
-    return buttonsArr*/
+    return buttonsArr
 }

+ 11 - 11
src/store/modules/user.js

@@ -1,17 +1,17 @@
 import pinia from '~src/store/init'
 import { useAppStore } from '~src/store'
-//import { getRoutes } from '~api/menu'
+import { getRoutes } from '~api/menu'
 import { getRefreshToken, setRefreshToken, setStore, setToken } from 'hc-vue3-ui'
-//import tokenData from '~src/router/modules/token'
-import { ArrToOneObj, getArrValue, getObjValue } from 'js-fast-way'
-//import { logout, refreshToken, userLogin } from '~api/user'
+import tokenData from '~src/router/modules/token'
+import { ArrToOneObj, getArrValue } from 'js-fast-way'
+import { logout, refreshToken, userLogin } from '~api/user'
 
 //初始变量
 const store = useAppStore(pinia)
 
 //登录
 export const useAppLogin = async (form) => {
-    /*const { error, code, res } = await userLogin(form)
+    const { error, code, res } = await userLogin(form)
     if (!error && code === 200) {
         setToken(res['access_token'])
         setRefreshToken(res['refresh_token'])
@@ -24,12 +24,12 @@ export const useAppLogin = async (form) => {
         return { error, code, res }
     } else {
         return { error, code, res }
-    }*/
+    }
 }
 
 //设置路由信息
 export const setRouterData = async () => {
-    /*const { error, data } = await getRoutes()
+    const { error, data } = await getRoutes()
     if (error) {
         return Promise.reject(false)
     }
@@ -42,12 +42,12 @@ export const setRouterData = async () => {
     store.setMenus(resData)
     setStore('route', routesObj)
     setStore('routes', routes)
-    return resData*/
+    return resData
 }
 
 //刷新token
 export const RefreshToken = async () => {
-    /*try {
+    try {
         const { dept_id, role_id } = store.getUserInfo
         const refresh = getRefreshToken()
         const { error, code, res } = await refreshToken(refresh, dept_id, role_id)
@@ -62,10 +62,10 @@ export const RefreshToken = async () => {
     } catch (e) {
         window.console.warn('token 刷新失败: ', e)
         return Promise.reject(e)
-    }*/
+    }
 }
 
 //登出
 export const LogOut = async () => {
-    //return await logout()
+    return await logout()
 }

+ 18 - 2
src/views/login/index.vue

@@ -36,6 +36,7 @@ import { onMounted, ref } from 'vue'
 import router from '~src/router/index'
 import { useAppStore } from '~src/store'
 import { formValidate } from 'js-fast-way'
+import { useAppLogin } from '~store/user'
 
 //图片文件
 import bg1Png from '~src/assets/login/bg1.png'
@@ -56,7 +57,7 @@ onMounted(() => {
 //表单
 const formRef = ref(null)
 const checkbox = ref(false)
-const formValue = ref({ username: '', password: '' })
+const formValue = ref({ tenantId: '000000', username: '', password: '', type: 'account' })
 const formRules = {
     username: {
         required: true,
@@ -80,7 +81,22 @@ const loading = ref(false)
 const formValidateClick = async () => {
     const formRes = await formValidate(formRef.value)
     if (!formRes) return false
-    router.push({ name: 'index' })
+    //登录请求
+    loading.value = true
+    const { error, msg } = await useAppLogin(formValue.value)
+    //登录失败
+    if (error) {
+        loading.value = false
+        window?.$message?.error(msg)
+        return false
+    }
+    //登录成功
+    loading.value = false
+    window?.$message?.success('登录成功')
+    setTimeout(() => {
+        loading.value = false
+        router.push({ name: 'index' })
+    }, 1500)
 }
 </script>