“人事数据修复”

This commit is contained in:
weizhong committed 2025-08-06 16:37:37 +08:00
1 parent 134f711349
commit 3bdc440ab7
159 files changed
+7742 -9254

No files matched your search

+4 -10
View File
@@ -63,7 +63,6 @@ export interface SysRegionVO {
* 子节点列表(用于树形结构)
*/
children?: SysRegionVO[];
}
export interface SysRegionForm extends BaseEntity {
@@ -126,11 +125,9 @@ export interface SysRegionForm extends BaseEntity {
* 逻辑删除标识(0未删除 1已删除)
*/
deleted?: number;
}
export interface SysRegionQuery extends PageQuery {
/**
* 行政区划编码
*/
@@ -181,11 +178,8 @@ export interface SysRegionQuery extends PageQuery {
*/
deleted?: number;
/**
* 日期范围参数
*/
params?: any;
/**
* 日期范围参数
*/
params?: any;
}
+25 -25
View File
@@ -1,4 +1,4 @@
import request from '@/utils/request'
import request from '@/utils/request';
/**
* 重置bucket访问密码
@@ -11,7 +11,7 @@ export function resetBucketPassword(bucketName: string, newPassword: string) {
url: '/system/bucket-password/reset',
method: 'post',
params: { bucketName, newPassword }
})
});
}
/**
@@ -23,7 +23,7 @@ export function getBucketPasswordInfo(bucketName: string) {
return request({
url: `/system/bucket-password/info/${bucketName}`,
method: 'get'
})
});
}
/**
@@ -37,7 +37,7 @@ export function getBucketAccessRecords(bucketName: string, limit: number = 10) {
url: `/system/bucket-password/records/${bucketName}`,
method: 'get',
params: { limit }
})
});
}
/**
@@ -51,7 +51,7 @@ export function validateBucketPassword(bucketName: string, password: string) {
url: '/system/bucket-password/validate',
method: 'post',
params: { bucketName, password }
})
});
}
/**
@@ -60,12 +60,12 @@ export function validateBucketPassword(bucketName: string, password: string) {
* @returns 生成的密码
*/
export function generateStrongPassword(length: number = 12): string {
const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'
let password = ''
const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*';
let password = '';
for (let i = 0; i < length; i++) {
password += charset.charAt(Math.floor(Math.random() * charset.length))
password += charset.charAt(Math.floor(Math.random() * charset.length));
}
return password
return password;
}
/**
@@ -74,51 +74,51 @@ export function generateStrongPassword(length: number = 12): string {
* @returns 密码强度评估
*/
export function validatePasswordStrength(password: string): {
isValid: boolean
score: number
suggestions: string[]
isValid: boolean;
score: number;
suggestions: string[];
} {
const suggestions: string[] = []
let score = 0
const suggestions: string[] = [];
let score = 0;
// 长度检查
if (password.length >= 8) {
score += 1
score += 1;
} else {
suggestions.push('密码长度至少8位')
suggestions.push('密码长度至少8位');
}
// 包含大写字母
if (/[A-Z]/.test(password)) {
score += 1
score += 1;
} else {
suggestions.push('包含大写字母')
suggestions.push('包含大写字母');
}
// 包含小写字母
if (/[a-z]/.test(password)) {
score += 1
score += 1;
} else {
suggestions.push('包含小写字母')
suggestions.push('包含小写字母');
}
// 包含数字
if (/\d/.test(password)) {
score += 1
score += 1;
} else {
suggestions.push('包含数字')
suggestions.push('包含数字');
}
// 包含特殊字符
if (/[!@#$%^&*]/.test(password)) {
score += 1
score += 1;
} else {
suggestions.push('包含特殊字符')
suggestions.push('包含特殊字符');
}
return {
isValid: score >= 4,
score,
suggestions
}
};
}
+28 -28
View File
@@ -1,4 +1,4 @@
import request from '@/utils/request'
import request from '@/utils/request';
/**
* 获取文件临时访问URL
@@ -15,7 +15,7 @@ export function getFileAccessUrl(ossId: number | string | bigint, bucketPassword
bucketPassword,
expireSeconds
}
})
});
}
/**
@@ -34,7 +34,7 @@ export function getBatchFileAccessUrl(ossIds: number[], bucketPassword?: string,
bucketPassword,
expireSeconds
}
})
});
}
/**
@@ -52,7 +52,7 @@ export function getFileDownloadUrl(ossId: number | string | bigint, bucketPasswo
bucketPassword,
expireSeconds
}
})
});
}
/**
@@ -70,7 +70,7 @@ export function getFilePreviewUrl(ossId: number | string | bigint, bucketPasswor
bucketPassword,
expireSeconds
}
})
});
}
/**
@@ -83,32 +83,32 @@ export function getFilePreviewUrl(ossId: number | string | bigint, bucketPasswor
export async function secureDownloadFile(ossId: number | string | bigint, fileName: string, bucketPassword?: string) {
try {
// 获取临时下载URL
const { data: downloadUrl } = await getFileDownloadUrl(ossId, bucketPassword)
const { data: downloadUrl } = await getFileDownloadUrl(ossId, bucketPassword);
// 使用fetch下载文件
const response = await fetch(downloadUrl)
const response = await fetch(downloadUrl);
if (!response.ok) {
throw new Error('下载失败')
throw new Error('下载失败');
}
const blob = await response.blob()
const blob = await response.blob();
// 创建下载链接
const url = URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.download = fileName
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = fileName;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// 释放内存
URL.revokeObjectURL(url)
URL.revokeObjectURL(url);
return Promise.resolve()
return Promise.resolve();
} catch (error) {
console.error('文件下载失败:', error)
return Promise.reject(error)
console.error('文件下载失败:', error);
return Promise.reject(error);
}
}
@@ -122,20 +122,20 @@ export async function secureDownloadFile(ossId: number | string | bigint, fileNa
export async function securePreviewFile(ossId: number | string | bigint, contentType?: string, bucketPassword?: string) {
try {
// 获取临时预览URL
const { data: previewUrl } = await getFilePreviewUrl(ossId, bucketPassword)
const { data: previewUrl } = await getFilePreviewUrl(ossId, bucketPassword);
// 根据文件类型选择预览方式
if (contentType?.startsWith('image/')) {
// 图片直接返回URL用于预览
return Promise.resolve(previewUrl)
return Promise.resolve(previewUrl);
} else {
// 其他文件在新窗口打开
window.open(previewUrl, '_blank')
return Promise.resolve(previewUrl)
window.open(previewUrl, '_blank');
return Promise.resolve(previewUrl);
}
} catch (error) {
console.error('文件预览失败:', error)
return Promise.reject(error)
console.error('文件预览失败:', error);
return Promise.reject(error);
}
}
@@ -147,7 +147,7 @@ export async function securePreviewFile(ossId: number | string | bigint, content
export function getBucketPasswordHint(bucketName: string) {
// 这里可以根据bucket名称返回相应的密码提示
// 例如:从配置中获取密码提示信息
return `请输入 ${bucketName} bucket 的访问密码`
return `请输入 ${bucketName} bucket 的访问密码`;
}
/**
@@ -157,5 +157,5 @@ export function getBucketPasswordHint(bucketName: string) {
*/
export function validateBucketPassword(password: string): boolean {
// 简单的密码格式验证
return password && password.length >= 6
return password && password.length >= 6;
}