This commit is contained in:
caozehui
2025-03-26 15:42:40 +08:00
parent 39f4cfa670
commit b75ecb8c66
4 changed files with 32 additions and 29 deletions

View File

@@ -2,11 +2,12 @@ import type { Login } from '@/api/user/interface/user'
import {ADMIN as rePrefix} from '@/api/system/config/serviceName' import {ADMIN as rePrefix} from '@/api/system/config/serviceName'
import http from '@/api' import http from '@/api'
import type {Dict} from '@/api/interface' import type {Dict} from '@/api/interface'
/** /**
* @name 登录模块 * @name 登录模块
*/ */
// 用户登录 // 用户登录
export const loginApi = (params: { username: string; password: string }) => { export const loginApi = (params: { username: string; password: string,checked: boolean }) => {
return http.post<Login.ResLogin>(`${rePrefix}/login`, params, {loading: false}) return http.post<Login.ResLogin>(`${rePrefix}/login`, params, {loading: false})
// return http.post<Login.ResLogin>(`/Register1`, params, { loading: false }) // return http.post<Login.ResLogin>(`/Register1`, params, { loading: false })
} }
@@ -46,6 +47,6 @@ export const getCurrentScene = () => {
/** /**
* 获取RSA公钥 * 获取RSA公钥
*/ */
export const getPublicKey = () => { export const getPublicKey = (username: string, checked: boolean) => {
return http.get('/admin/getPublicKey', {}, { loading: false }) return http.get(`/admin/getPublicKey?username=${username}&checked=${checked}`, {}, {loading: false})
} }

View File

@@ -8,7 +8,7 @@
<!-- :requestApi="getRoleList" --> <!-- :requestApi="getRoleList" -->
<!-- 表格 header 按钮 --> <!-- 表格 header 按钮 -->
<template #tableHeader='scope'> <template #tableHeader='scope'>
<el-button v-auth.role="'add'" type='primary' :icon='CirclePlus' @click="openDrawer('新增角色')">新增</el-button> <el-button v-auth.role="'add'" type='primary' :icon='CirclePlus' @click="openDrawer('add')">新增</el-button>
<el-button v-auth.role="'delete'" type='danger' :icon='Delete' plain :disabled='!scope.isSelected' <el-button v-auth.role="'delete'" type='danger' :icon='Delete' plain :disabled='!scope.isSelected'
@click='batchDelete(scope.selectedListIds)'> @click='batchDelete(scope.selectedListIds)'>
删除 删除
@@ -16,7 +16,7 @@
</template> </template>
<!-- 表格操作 --> <!-- 表格操作 -->
<template #operation='scope'> <template #operation='scope'>
<el-button v-auth.role="'edit'" type='primary' link :icon='EditPen' @click="openDrawer('编辑角色', scope.row)">编辑</el-button> <el-button v-auth.role="'edit'" type='primary' link :icon='EditPen' @click="openDrawer('edit', scope.row)">编辑</el-button>
<el-button v-auth.role="'delete'" v-if="scope.row.type !== 0 && scope.row.type !== 1" type='primary' link :icon='Delete' @click='deleteAccount(scope.row)'>删除</el-button> <el-button v-auth.role="'delete'" v-if="scope.row.type !== 0 && scope.row.type !== 1" type='primary' link :icon='Delete' @click='deleteAccount(scope.row)'>删除</el-button>
<el-button v-auth.role="'SetPermissions'" type='primary' link :icon='Share' @click="openDrawer('设置权限', scope.row)">设置权限</el-button> <el-button v-auth.role="'SetPermissions'" type='primary' link :icon='Share' @click="openDrawer('设置权限', scope.row)">设置权限</el-button>
</template> </template>

View File

@@ -105,10 +105,18 @@ const login = (formEl: FormInstance | undefined) => {
if (!valid) return if (!valid) return
loading.value = true loading.value = true
try { try {
if (!isAutoLogin.value) {
let {data: publicKeyBase64}: { data: string } = await getPublicKey(loginForm.username, loginForm.checked)
//将base64格式的公钥转换为Forge可以使用的格式
const publicKeyDer = forge.util.decode64(publicKeyBase64);
publicKey = forge.pki.publicKeyFromPem(forge.pki.publicKeyToPem(forge.pki.publicKeyFromAsn1(forge.asn1.fromDer(publicKeyDer))));
}
// 1.执行登录接口 // 1.执行登录接口
const {data} = await loginApi({ const {data} = await loginApi({
username: forge.util.encode64(loginForm.username), username: forge.util.encode64(loginForm.username),
password: isAutoLogin.value ? loginForm.password : encryptPassword(loginForm.password) password: isAutoLogin.value ? loginForm.password : encryptPassword(loginForm.password),
checked: loginForm.checked
}) })
if (loginForm.checked) { if (loginForm.checked) {
localStorage.setItem("loginInfo", JSON.stringify({ localStorage.setItem("loginInfo", JSON.stringify({
@@ -184,12 +192,6 @@ onBeforeMount(async () => {
loginForm.checked = true loginForm.checked = true
} }
} }
if (!isAutoLogin.value) {
let {data: publicKeyBase64}:{data:string} = await getPublicKey()
//将base64格式的公钥转换为Forge可以使用的格式
const publicKeyDer = forge.util.decode64(publicKeyBase64);
publicKey = forge.pki.publicKeyFromPem(forge.pki.publicKeyToPem(forge.pki.publicKeyFromAsn1(forge.asn1.fromDer(publicKeyDer))));
}
}) })
</script> </script>

View File

@@ -227,7 +227,7 @@ const columns = reactive<ColumnProps<Plan.ReqPlan>[]>([
{ {
prop: 'errorSysId', prop: 'errorSysId',
label: '误差体系', label: '误差体系',
width: 200, width: 240,
render: scope => { render: scope => {
return ( return (
<el-link type='primary' link onClick={() => showData(scope.row)}> <el-link type='primary' link onClick={() => showData(scope.row)}>