refactor: vite.config.ts 类型修复与 Vite 8 迁移适配
- 修复 vite.config.ts 中 command 隐式 any 类型错误 - 修复 proxy 中 path 参数隐式 any 类型错误 - 将无效的 oxc.drop 配置迁移为 Vite 8 原生方式(build.rolldownOptions.output.minify.compress) - 引入 defineConfig + ConfigEnv 提供完整类型推导 - JS 文件迁移为 TypeScript(user.ts, routerGuard.ts 等) - 更新 API 层类型定义
This commit is contained in:
@@ -1,66 +1,84 @@
|
||||
import request from "@/utils/request";
|
||||
import type { ApiResult, OrderItem, PageParam, PageResult } from "@/types/api";
|
||||
import type { RosCar } from "./rosCar";
|
||||
|
||||
/**
|
||||
* 告警列表查询条件,对应后端 com.haizhiyustc.ros.dto.RosInspectionRecordLineImageQueryDTO
|
||||
*/
|
||||
export interface RosInspectionRecordLineImageQueryDTO {
|
||||
/** 识别类型 */
|
||||
recognizeType?: number | string;
|
||||
/** 开始时间 */
|
||||
startTime?: string;
|
||||
/** 结束时间 */
|
||||
endTime?: string;
|
||||
/** 是否预警 */
|
||||
warning?: boolean;
|
||||
/** 关键字 */
|
||||
keyword?: string;
|
||||
}
|
||||
|
||||
export interface OrderItem {
|
||||
property: string;
|
||||
tableIndex?: number;
|
||||
asc?: boolean;
|
||||
}
|
||||
|
||||
export interface PageParam<T> {
|
||||
page?: number;
|
||||
limit?: number;
|
||||
orderList?: OrderItem[];
|
||||
query?: T;
|
||||
}
|
||||
|
||||
export type RosInspectionRecordLineImagePageQuery =
|
||||
Partial<RosInspectionRecordLineImage> & {
|
||||
keyword?: string;
|
||||
};
|
||||
|
||||
export interface RosInspectionRecordLineImageCar {
|
||||
id?: string;
|
||||
deviceKey?: string;
|
||||
deviceNo?: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检路线抓拍图片识别记录,对应后端 com.haizhiyustc.ros.entity.RosInspectionRecordLineImage
|
||||
* recognitionStatus: 0待执行 1执行中 2执行成功 3执行失败
|
||||
*/
|
||||
export interface RosInspectionRecordLineImage {
|
||||
/** 巡检记录id */
|
||||
recordId: string;
|
||||
/** 巡检设备id快照 */
|
||||
carId?: string;
|
||||
car?: RosInspectionRecordLineImageCar;
|
||||
/** 关联的小车信息 */
|
||||
car?: RosCar;
|
||||
/** 抓拍动作id */
|
||||
recordActionId: string;
|
||||
/** 所属任务id */
|
||||
taskId?: string;
|
||||
/** 识别类型 */
|
||||
recognizeType?: number;
|
||||
/** 图片访问地址 */
|
||||
imageUrl?: string;
|
||||
/** 抓拍时间 */
|
||||
captureTime?: string;
|
||||
/** 抓拍时的小车位姿x */
|
||||
poseX?: number;
|
||||
/** 抓拍时的小车位姿y */
|
||||
poseY?: number;
|
||||
/** 抓拍时的小车朝向 */
|
||||
poseYaw?: number;
|
||||
/** 识别状态:0待执行 1执行中 2执行成功 3执行失败 */
|
||||
recognitionStatus?: number;
|
||||
/** AI识别提示词 */
|
||||
prompt?: string;
|
||||
/** AI识别结果 */
|
||||
recognitionResult?: string;
|
||||
/** 是否预警 */
|
||||
warning?: boolean;
|
||||
/** 预警值 */
|
||||
warningValue?: string;
|
||||
/** 失败原因 */
|
||||
failReason?: string;
|
||||
/** 开始识别时间 */
|
||||
startTime?: string;
|
||||
/** 结束识别时间 */
|
||||
endTime?: string;
|
||||
/** 创建时间 */
|
||||
createTime?: string;
|
||||
/** 更新时间 */
|
||||
updateTime?: string;
|
||||
/** 主键id */
|
||||
id?: string;
|
||||
}
|
||||
|
||||
// 查询近期告警列表
|
||||
// 返回告警列表,对应后端 warnList 接口
|
||||
// 返回: ApiResult<List<RosInspectionRecordLineImage>>
|
||||
export function getRecentAlarmList(data: RosInspectionRecordLineImageQueryDTO) {
|
||||
return request({
|
||||
return request<ApiResult<RosInspectionRecordLineImage[]>>({
|
||||
url: "/admin/rosInspectionRecordLineImage/warnList",
|
||||
data,
|
||||
});
|
||||
@@ -68,7 +86,7 @@ export function getRecentAlarmList(data: RosInspectionRecordLineImageQueryDTO) {
|
||||
|
||||
// 分页查询告警列表
|
||||
export function getAlarmPage(data: PageParam<RosInspectionRecordLineImagePageQuery>) {
|
||||
return request({
|
||||
return request<ApiResult<PageResult<RosInspectionRecordLineImage>>>({
|
||||
url: "/admin/rosInspectionRecordLineImage/list",
|
||||
method: "POST",
|
||||
data,
|
||||
|
||||
@@ -1,8 +1,238 @@
|
||||
import request from "@/utils/request";
|
||||
import type { ApiResult, PageParam, PageResult } from "@/types/api";
|
||||
|
||||
/**
|
||||
* 升降柱状态,对应后端 com.haizhiyustc.ros.dto.RosLiftDTO
|
||||
*/
|
||||
export interface RosLift {
|
||||
/** 升降柱接口是否调用成功 */
|
||||
liftSuccess?: boolean;
|
||||
/** 升降柱接口返回码 */
|
||||
liftCode?: number;
|
||||
/** 升降柱接口返回消息 */
|
||||
liftMessage?: string;
|
||||
/** 升降柱设备状态码 */
|
||||
liftDeviceStatusCode?: string;
|
||||
/** 升降柱设备状态描述 */
|
||||
liftDeviceStatusDescription?: string;
|
||||
/** 升降柱错误码 */
|
||||
liftErrorCode?: string;
|
||||
/** 升降柱错误描述 */
|
||||
liftErrorDescription?: string;
|
||||
/** 升降柱高度 */
|
||||
liftHeight?: number;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* ROS 小车,对应后端 com.haizhiyustc.ros.entity.RosCar
|
||||
* status: 0空闲 1巡检 2离线 3充电中
|
||||
*/
|
||||
export interface RosCar {
|
||||
/** 主键id */
|
||||
id?: string;
|
||||
/** 设备唯一标识 */
|
||||
deviceKey?: string;
|
||||
/** 设备编号 */
|
||||
deviceNo?: string;
|
||||
/** 小车信号 */
|
||||
signal?: string;
|
||||
/** 小车名称 */
|
||||
name?: string;
|
||||
/** 电量百分比 */
|
||||
batteryLevel?: number;
|
||||
/** 电压 */
|
||||
voltage?: number;
|
||||
/** 当前状态:0空闲 1巡检 2离线 3充电中 */
|
||||
status?: number;
|
||||
/** 所属项目名称 */
|
||||
projectName?: string;
|
||||
/** 当前 X 坐标 */
|
||||
poseX?: number;
|
||||
/** 当前 Y 坐标 */
|
||||
poseY?: number;
|
||||
/** 当前朝向 */
|
||||
poseYaw?: number;
|
||||
/** 相机 WebRTC 地址 */
|
||||
cameraWebrtcUrl?: string;
|
||||
/** 相机编号 */
|
||||
cameraNo?: string;
|
||||
/** 红外相机 WebRTC 地址 */
|
||||
cameraWebrtcUrl2?: string;
|
||||
/** 红外相机编号 */
|
||||
cameraNo2?: string;
|
||||
/** 云台预制点 */
|
||||
panTiltPreset?: number;
|
||||
/** 地图 PGM 文件 URL 地址 */
|
||||
mapPgmUrl?: string;
|
||||
/** 地图 YAML 文件 URL 地址 */
|
||||
mapYamlUrl?: string;
|
||||
/** 升降柱高度 */
|
||||
liftHeight?: number;
|
||||
/** 升降柱状态 */
|
||||
lift?: RosLift;
|
||||
/** 创建时间 */
|
||||
createTime?: string;
|
||||
/** 更新时间 */
|
||||
updateTime?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检记录,对应后端 com.haizhiyustc.ros.entity.RosInspectionRecord
|
||||
* status: 0执行中 1执行完成 2执行失败 3已停止
|
||||
*/
|
||||
export interface RosInspectionRecord {
|
||||
/** 主键id */
|
||||
id?: string;
|
||||
/** 所属巡检任务id */
|
||||
taskId?: string;
|
||||
/** 巡检设备id */
|
||||
carId?: string;
|
||||
/** 巡检说明快照 */
|
||||
remark?: string;
|
||||
/** 全局限速快照 */
|
||||
maxVelocity?: number;
|
||||
/** 插值密度快照(米/点) */
|
||||
interpolationDensity?: number;
|
||||
/** 巡检地图名快照 */
|
||||
mapName?: string;
|
||||
/** 巡检轮数快照 */
|
||||
roundCount?: number;
|
||||
/** 当前执行轮次,从1开始 */
|
||||
currentRoundIndex?: number;
|
||||
/** 开始时间 */
|
||||
startTime?: string;
|
||||
/** 结束时间 */
|
||||
endTime?: string;
|
||||
/** 执行状态:0执行中 1执行完成 2执行失败 3已停止 */
|
||||
status?: number;
|
||||
/** 失败原因 */
|
||||
failReason?: string;
|
||||
/** 当前执行节点id */
|
||||
currentNodeId?: string;
|
||||
/** 当前执行的动作id */
|
||||
currentActionId?: string;
|
||||
/** 开始执行时的小车电量 */
|
||||
startBatteryLevel?: number;
|
||||
/** 执行结束后小车电量 */
|
||||
endBatteryLevel?: number;
|
||||
/** 开始执行时的小车位姿x */
|
||||
startPoseX?: number;
|
||||
/** 开始执行时的小车位姿y */
|
||||
startPoseY?: number;
|
||||
/** 执行结束时的小车位姿x */
|
||||
endPoseX?: number;
|
||||
/** 执行结束时的小车位姿y */
|
||||
endPoseY?: number;
|
||||
/** 总动作数 */
|
||||
totalActionCount?: number;
|
||||
/** 当前节点序号 */
|
||||
currentNodeIndex?: number;
|
||||
/** 创建时间 */
|
||||
createTime?: string;
|
||||
/** 更新时间 */
|
||||
updateTime?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检任务节点模板,对应后端 com.haizhiyustc.ros.dto.RosInspectionTaskNodeDTO
|
||||
* type: via_point 途经点 / action_point 任务点
|
||||
*/
|
||||
export interface RosInspectionTaskNodeDTO {
|
||||
/** 节点类型:via_point 途经点 / action_point 任务点 */
|
||||
type?: string;
|
||||
/** 位姿x */
|
||||
poseX?: number;
|
||||
/** 位姿y */
|
||||
poseY?: number;
|
||||
/** 节点顺序 */
|
||||
nodeIndex?: number;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检任务轮次模板,对应后端 com.haizhiyustc.ros.dto.RosInspectionTaskRoundDTO
|
||||
* direction: forward 正走 / backward 倒走
|
||||
*/
|
||||
export interface RosInspectionTaskRoundDTO {
|
||||
/** 轮次,从1开始 */
|
||||
roundIndex?: number;
|
||||
/** 本轮行走方向:forward 正走 / backward 倒走 */
|
||||
direction?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检任务动作模板,对应后端 RosInspectionTaskDetailDTO.RosInspectionActionDTO
|
||||
* command: 0升降柱 1云台旋转 2抓拍识别
|
||||
*/
|
||||
export interface RosInspectionActionDTO {
|
||||
/** 节点顺序 */
|
||||
nodeIndex?: number;
|
||||
/** 轮次 */
|
||||
roundIndex?: number;
|
||||
/** 动作类型:0升降柱 1云台旋转 2抓拍识别 */
|
||||
command?: number;
|
||||
/** 动作参数 */
|
||||
params?: Record<string, unknown>;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检任务模板详情,对应后端 com.haizhiyustc.ros.dto.RosInspectionTaskDetailDTO
|
||||
*/
|
||||
export interface RosInspectionTaskDetailDTO {
|
||||
/** 主键id */
|
||||
id?: string;
|
||||
/** 巡检设备id */
|
||||
carId?: string;
|
||||
/** 巡检说明 */
|
||||
remark?: string;
|
||||
/** 巡检状态:0待执行 1执行中 2已停止 */
|
||||
status?: number;
|
||||
/** 全局限速 */
|
||||
maxVelocity?: number;
|
||||
/** ROS2端生成平滑曲线时的插值密度(米/点) */
|
||||
interpolationDensity?: number;
|
||||
/** 巡检地图名 */
|
||||
mapName?: string;
|
||||
/** 巡检轮数 */
|
||||
roundCount?: number;
|
||||
/** 巡检节点模板列表 */
|
||||
nodes?: RosInspectionTaskNodeDTO[];
|
||||
/** 巡检轮次模板列表 */
|
||||
rounds?: RosInspectionTaskRoundDTO[];
|
||||
/** 巡检动作模板列表 */
|
||||
actions?: RosInspectionActionDTO[];
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 巡检任务下发结果,对应后端 com.haizhiyustc.ros.dto.RosDispatchResultDTO
|
||||
*/
|
||||
export interface RosDispatchResultDTO {
|
||||
/** 巡检记录id */
|
||||
recordId?: string;
|
||||
/** 小车是否接受本次下发 */
|
||||
accepted?: boolean;
|
||||
/** 下发结果说明 */
|
||||
message?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 小车分页查询条件,对应后端 com.haizhiyustc.ros.entity.RosCar 的字段过滤
|
||||
*/
|
||||
export type RosCarQuery = Partial<RosCar> & {
|
||||
/** 关键字 */
|
||||
keyword?: string;
|
||||
};
|
||||
|
||||
// 小车分页列表
|
||||
export function getRosCarList(data: unknown) {
|
||||
return request({
|
||||
export function getRosCarList(data: PageParam<RosCarQuery>) {
|
||||
return request<ApiResult<PageResult<RosCar>>>({
|
||||
url: "/admin/rosCar/list",
|
||||
data,
|
||||
});
|
||||
@@ -10,7 +240,7 @@ export function getRosCarList(data: unknown) {
|
||||
|
||||
// 保存巡检任务模板
|
||||
export function saveRosInspectionTask(data: unknown) {
|
||||
return request({
|
||||
return request<ApiResult<null>>({
|
||||
url: "/admin/rosInspectionTask/save",
|
||||
data,
|
||||
});
|
||||
@@ -18,7 +248,7 @@ export function saveRosInspectionTask(data: unknown) {
|
||||
|
||||
// 巡检任务模板详情
|
||||
export function getRosInspectionTaskDetail(cardId: string) {
|
||||
return request({
|
||||
return request<ApiResult<RosInspectionTaskDetailDTO>>({
|
||||
url: "/admin/rosInspectionTask/detail",
|
||||
params: { cardId },
|
||||
});
|
||||
@@ -26,7 +256,7 @@ export function getRosInspectionTaskDetail(cardId: string) {
|
||||
|
||||
// 查询小车当前巡检状态
|
||||
export function getCurrentRosInspection(carId: string) {
|
||||
return request({
|
||||
return request<ApiResult<RosInspectionRecord>>({
|
||||
url: "/admin/rosCar/currentInspection",
|
||||
params: { carId },
|
||||
});
|
||||
@@ -34,7 +264,7 @@ export function getCurrentRosInspection(carId: string) {
|
||||
|
||||
// 下发巡检任务
|
||||
export function dispatchRosInspectionTask(taskId: string) {
|
||||
return request({
|
||||
return request<ApiResult<RosDispatchResultDTO>>({
|
||||
url: "/admin/rosInspectionTask/dispatch",
|
||||
params: { taskId },
|
||||
});
|
||||
@@ -42,7 +272,7 @@ export function dispatchRosInspectionTask(taskId: string) {
|
||||
|
||||
// 停止已下发的巡检任务
|
||||
export function stopDispatchRosInspectionTask(taskId: string) {
|
||||
return request({
|
||||
return request<ApiResult<RosDispatchResultDTO>>({
|
||||
url: "/admin/rosInspectionTask/stopDispatch",
|
||||
params: { taskId },
|
||||
});
|
||||
@@ -54,7 +284,7 @@ export function uploadFile(file: File) {
|
||||
|
||||
data.append("file", file);
|
||||
|
||||
return request({
|
||||
return request<ApiResult<string>>({
|
||||
url: "/admin/file/upload",
|
||||
data,
|
||||
});
|
||||
@@ -66,7 +296,7 @@ export function updateRosCarMapUrls(data: {
|
||||
mapPgmUrl?: string;
|
||||
mapYamlUrl?: string;
|
||||
}) {
|
||||
return request({
|
||||
return request<ApiResult<null>>({
|
||||
url: "/admin/rosCar/updateMapUrls",
|
||||
data,
|
||||
});
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
import request, { BASE_URL } from '@/utils/request'
|
||||
export function getPublicKey() {
|
||||
return request({
|
||||
url: 'admin/account/publicKey'
|
||||
})
|
||||
}
|
||||
export function login(data) {
|
||||
return request({
|
||||
url: 'admin/account/login',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function captcha() {
|
||||
return BASE_URL + '/admin/account/captcha'
|
||||
}
|
||||
export function getInfo() {
|
||||
return request({
|
||||
url: 'admin/account/info',
|
||||
})
|
||||
}
|
||||
|
||||
export function updateInfo(data) {
|
||||
return request({
|
||||
url: 'admin/account/update',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updatePwd(data) {
|
||||
return request({
|
||||
url: 'admin/account/updatePwd',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 发送重置密码验证码
|
||||
export function getVerifyCode(data) {
|
||||
return request({
|
||||
url: '/admin/sysUser/getVerifyCode',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//忘记密码
|
||||
export function resetUserPassword(data) {
|
||||
return request({
|
||||
url: '/admin/sysUser/resetUserPassword',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
107
src/api/user.ts
Normal file
107
src/api/user.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
import request, { BASE_URL } from '@/utils/request'
|
||||
import type { ApiResult } from '@/types/api'
|
||||
|
||||
/**
|
||||
* 登录返回,对应后端 com.haizhiyustc.system.vo.SysUserLoginVO
|
||||
*/
|
||||
export interface LoginResult {
|
||||
/** 用户id */
|
||||
userId: string;
|
||||
/** 登录令牌 */
|
||||
token: string;
|
||||
/** 令牌请求头名称 */
|
||||
tokenName: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户个人资料,对应后端 UserInfoVO.UserInfoProfile
|
||||
*/
|
||||
export interface UserProfile {
|
||||
/** 账号id */
|
||||
id?: string;
|
||||
/** 头像 */
|
||||
avatar?: string;
|
||||
/** 登录账号 */
|
||||
account?: string;
|
||||
/** 账户名 */
|
||||
name?: string;
|
||||
/** 性别 */
|
||||
gender?: string;
|
||||
/** 邮箱 */
|
||||
email?: string;
|
||||
/** 手机号 */
|
||||
phone?: string;
|
||||
/** 状态 */
|
||||
status?: number;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前登录用户信息,对应后端 com.haizhiyustc.system.vo.UserInfoVO
|
||||
*/
|
||||
export interface UserInfoVO {
|
||||
/** 账号名 */
|
||||
name?: string;
|
||||
/** 角色 */
|
||||
role?: string;
|
||||
/** 角色列表 */
|
||||
roles?: string[];
|
||||
/** 权限列表 */
|
||||
permissions?: string[];
|
||||
/** 用户个人资料 */
|
||||
profile?: UserProfile;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export function getPublicKey() {
|
||||
return request<ApiResult<string>>({
|
||||
url: 'admin/account/publicKey'
|
||||
})
|
||||
}
|
||||
|
||||
export function login(data: Record<string, unknown>) {
|
||||
return request<ApiResult<LoginResult>>({
|
||||
url: 'admin/account/login',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function captcha(): string {
|
||||
return BASE_URL + '/admin/account/captcha'
|
||||
}
|
||||
|
||||
export function getInfo() {
|
||||
return request<ApiResult<UserInfoVO>>({
|
||||
url: 'admin/account/info',
|
||||
})
|
||||
}
|
||||
|
||||
export function updateInfo(data: Record<string, unknown>) {
|
||||
return request<ApiResult<unknown>>({
|
||||
url: 'admin/account/update',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updatePwd(data: Record<string, unknown>) {
|
||||
return request<ApiResult<unknown>>({
|
||||
url: 'admin/account/updatePwd',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 发送重置密码验证码
|
||||
export function getVerifyCode(data: Record<string, unknown>) {
|
||||
return request<ApiResult<unknown>>({
|
||||
url: '/admin/sysUser/getVerifyCode',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//忘记密码
|
||||
export function resetUserPassword(data: Record<string, unknown>) {
|
||||
return request<ApiResult<unknown>>({
|
||||
url: '/admin/sysUser/resetUserPassword',
|
||||
data
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user