feat: add app management pages

This commit is contained in:
yuhaiming
2026-07-01 10:18:30 +08:00
parent 6bc3c618fe
commit f5dc2e2c3a
32 changed files with 3981 additions and 182 deletions

View File

@@ -0,0 +1,68 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DeviceVO, DeviceForm, DeviceQuery } from '@/api/app/device/types';
/**
* 查询设备信息
列表
* @param query
* @returns {*}
*/
export const listDevice = (query?: DeviceQuery): AxiosPromise<DeviceVO[]> => {
return request({
url: '/app/device/list',
method: 'get',
params: query
});
};
/**
* 查询设备信息
详细
* @param id
*/
export const getDevice = (id: string | number): AxiosPromise<DeviceVO> => {
return request({
url: '/app/device/' + id,
method: 'get'
});
};
/**
* 新增设备信息
* @param data
*/
export const addDevice = (data: DeviceForm) => {
return request({
url: '/app/device',
method: 'post',
data: data
});
};
/**
* 修改设备信息
* @param data
*/
export const updateDevice = (data: DeviceForm) => {
return request({
url: '/app/device',
method: 'put',
data: data
});
};
/**
* 删除设备信息
* @param id
*/
export const delDevice = (id: string | number | Array<string | number>) => {
return request({
url: '/app/device/' + id,
method: 'delete'
});
};

306
src/api/app/device/types.ts Normal file
View File

@@ -0,0 +1,306 @@
export interface DeviceVO {
/**
*
*/
id: string | number;
/**
* 设备编号
*/
deviceNo: string;
/**
* 设备名称
*/
deviceName: string;
/**
* 状态 1-在线 0-离线 2-故障 3-到期
*/
status: string;
/**
* WiFi名称
*/
wifiName: string;
/**
* WiFi密码
*/
wifiPassword: string;
/**
* 强光开启
*/
light: string;
/**
* 告警播放
*/
alertAudio: string;
/**
* 告警内容
*/
audioContet: string;
/**
* 打击距离
*/
strikeRange: string;
/**
* 打击间隔
*/
strikeInterval: string;
/**
* 容器数量
*/
container: string;
/**
* 打击位置
*/
strikePosition: string;
/**
* 自动布放开始时间
*/
startTime: string;
/**
* 自动布放结束时间
*/
endTime: string;
/**
* 工作模式 0-自动 1-半自动
*/
workMode: string;
/**
* 设备型号
*/
deviceEm: string;
/**
* 设备序列号
*/
deviceSn: string;
/**
* 固件版本
*/
fwVer: string;
/**
* 识别模式 0-蓝牙 1-蓝牙+人脸
*/
patternPerception?: string;
}
export interface DeviceForm extends BaseEntity {
/**
*
*/
id?: string | number;
/**
* 设备编号
*/
deviceNo?: string;
/**
* 设备名称
*/
deviceName?: string;
/**
* 状态 1-在线 0-离线 2-故障 3-到期
*/
status?: string;
/**
* WiFi名称
*/
wifiName?: string;
/**
* WiFi密码
*/
wifiPassword?: string;
/**
* 强光开启
*/
light?: string;
/**
* 告警播放
*/
alertAudio?: string;
/**
* 告警内容
*/
audioContet?: string;
/**
* 打击距离
*/
strikeRange?: string;
/**
* 打击间隔
*/
strikeInterval?: string;
/**
* 容器数量
*/
container?: string;
/**
* 打击位置
*/
strikePosition?: string;
/**
* 自动布放开始时间
*/
startTime?: string;
/**
* 自动布放结束时间
*/
endTime?: string;
/**
* 工作模式 0-自动 1-半自动
*/
workMode?: string;
/**
* 设备型号
*/
deviceEm?: string;
/**
* 设备序列号
*/
deviceSn?: string;
/**
* 固件版本
*/
fwVer?: string;
/**
* 识别模式 0-蓝牙 1-蓝牙+人脸
*/
patternPerception?: string;
}
export interface DeviceQuery extends PageQuery {
/**
* 设备编号
*/
deviceNo?: string;
/**
* 设备名称
*/
deviceName?: string;
/**
* 状态 1-在线 0-离线 2-故障 3-到期
*/
status?: string;
/**
* WiFi名称
*/
wifiName?: string;
/**
* WiFi密码
*/
wifiPassword?: string;
/**
* 强光开启
*/
light?: string;
/**
* 告警播放
*/
alertAudio?: string;
/**
* 告警内容
*/
audioContet?: string;
/**
* 打击距离
*/
strikeRange?: string;
/**
* 打击间隔
*/
strikeInterval?: string;
/**
* 容器数量
*/
container?: string;
/**
* 打击位置
*/
strikePosition?: string;
/**
* 自动布放开始时间
*/
startTime?: string;
/**
* 自动布放结束时间
*/
endTime?: string;
/**
* 工作模式 0-自动 1-半自动
*/
workMode?: string;
/**
* 设备型号
*/
deviceEm?: string;
/**
* 设备序列号
*/
deviceSn?: string;
/**
* 固件版本
*/
fwVer?: string;
/**
* 识别模式 0-蓝牙 1-蓝牙+人脸
*/
patternPerception?: string;
/**
* 日期范围参数
*/
params?: any;
}

View File

@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { DeviceUserVO, DeviceUserForm, DeviceUserQuery } from '@/api/app/deviceUser/types';
/**
* 查询设备成员关联列表
* @param query
* @returns {*}
*/
export const listDeviceUser = (query?: DeviceUserQuery): AxiosPromise<DeviceUserVO[]> => {
return request({
url: '/app/deviceUser/list',
method: 'get',
params: query
});
};
/**
* 查询设备成员关联详细
* @param deviceId
*/
export const getDeviceUser = (deviceId: string | number): AxiosPromise<DeviceUserVO> => {
return request({
url: '/app/deviceUser/' + deviceId,
method: 'get'
});
};
/**
* 新增设备成员关联
* @param data
*/
export const addDeviceUser = (data: DeviceUserForm) => {
return request({
url: '/app/deviceUser',
method: 'post',
data: data
});
};
/**
* 修改设备成员关联
* @param data
*/
export const updateDeviceUser = (data: DeviceUserForm) => {
return request({
url: '/app/deviceUser',
method: 'put',
data: data
});
};
/**
* 删除设备成员关联
* @param deviceId
*/
export const delDeviceUser = (deviceId: string | number | Array<string | number>) => {
return request({
url: '/app/deviceUser/' + deviceId,
method: 'delete'
});
};

View File

@@ -0,0 +1,78 @@
export interface DeviceUserVO {
/**
*
*/
deviceId: string | number;
/**
* 设备编号
*/
deviceNo: string;
/**
* 设备名称
*/
deviceName: string;
/**
* 用户ID
*/
userId: string | number;
/**
* 用户昵称
*/
nickName: string;
}
export interface DeviceUserForm extends BaseEntity {
/**
*
*/
deviceId?: string | number;
/**
* 设备编号
*/
deviceNo?: string;
/**
* 设备名称
*/
deviceName?: string;
/**
* 用户ID
*/
userId?: string | number;
/**
* 用户昵称
*/
nickName?: string;
}
export interface DeviceUserQuery extends PageQuery {
/**
* 设备编号
*/
deviceNo?: string;
/**
* 设备名称
*/
deviceName?: string;
/**
* 用户昵称
*/
nickName?: string;
/**
* 日期范围参数
*/
params?: any;
}

View File

@@ -0,0 +1,80 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { FamilyVO, FamilyForm, FamilyQuery } from '@/api/app/family/types';
/**
* 查询家庭成员列表
* @param query
* @returns {*}
*/
export const listFamily = (query?: FamilyQuery): AxiosPromise<FamilyVO[]> => {
return request({
url: '/app/family/list',
method: 'get',
params: query
});
};
/**
* 查询家庭成员详细
* @param id
*/
export const getFamily = (id: string | number): AxiosPromise<FamilyVO> => {
return request({
url: '/app/family/' + id,
method: 'get'
});
};
/**
* 新增家庭成员
* @param data
*/
export const addFamily = (data: FamilyForm) => {
return request({
url: '/app/family',
method: 'post',
data: data
});
};
/**
* 修改家庭成员
* @param data
*/
export const updateFamily = (data: FamilyForm) => {
return request({
url: '/app/family',
method: 'put',
data: data
});
};
/**
* 删除家庭成员
* @param id
*/
export const delFamily = (id: string | number | Array<string | number>) => {
return request({
url: '/app/family/' + id,
method: 'delete'
});
};
/**
* 家庭成员状态修改
* @param id 家庭成员ID
* @param status 状态
*/
export const changeFamilyStatus = (id: string | number, status: string) => {
const data = {
id,
status
};
return request({
url: '/app/family/changeStatus',
method: 'put',
data: data
});
};

View File

@@ -0,0 +1,83 @@
export interface FamilyVO {
/**
*
*/
id: string | number;
/**
* 家长id
*/
parentId: string | number;
/**
* 家长昵称
*/
parentName: string;
/**
* 成员id
*/
userId: string | number;
/**
* 账号状态0正常 1停用
*/
status: string;
}
export interface FamilyForm extends BaseEntity {
/**
*
*/
id?: string | number;
/**
* 家长id
*/
parentId?: string | number;
/**
* 家长昵称
*/
parentName?: string;
/**
* 成员id
*/
userId?: string | number;
/**
* 账号状态0正常 1停用
*/
status?: string;
}
export interface FamilyQuery extends PageQuery {
/**
* 家长id
*/
parentId?: string | number;
/**
* 家长昵称
*/
parentName?: string;
/**
* 成员id
*/
userId?: string | number;
/**
* 账号状态0正常 1停用
*/
status?: string;
/**
* 日期范围参数
*/
params?: any;
}

View File

@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { FamilyDeviceVO, FamilyDeviceForm, FamilyDeviceQuery } from '@/api/app/familyDevice/types';
/**
* 查询家庭设备关联列表
* @param query
* @returns {*}
*/
export const listFamilyDevice = (query?: FamilyDeviceQuery): AxiosPromise<FamilyDeviceVO[]> => {
return request({
url: '/app/familyDevice/list',
method: 'get',
params: query
});
};
/**
* 查询家庭设备关联详细
* @param userId
*/
export const getFamilyDevice = (userId: string | number): AxiosPromise<FamilyDeviceVO> => {
return request({
url: '/app/familyDevice/' + userId,
method: 'get'
});
};
/**
* 新增家庭设备关联
* @param data
*/
export const addFamilyDevice = (data: FamilyDeviceForm) => {
return request({
url: '/app/familyDevice',
method: 'post',
data: data
});
};
/**
* 修改家庭设备关联
* @param data
*/
export const updateFamilyDevice = (data: FamilyDeviceForm) => {
return request({
url: '/app/familyDevice',
method: 'put',
data: data
});
};
/**
* 删除家庭设备关联
* @param userId
*/
export const delFamilyDevice = (userId: string | number | Array<string | number>) => {
return request({
url: '/app/familyDevice/' + userId,
method: 'delete'
});
};

View File

@@ -0,0 +1,78 @@
export interface FamilyDeviceVO {
/**
* 用户ID
*/
userId: string | number;
/**
* 用户昵称
*/
nickName: string;
/**
*
*/
deviceId: string | number;
/**
* 设备编号
*/
deviceNo: string;
/**
* 设备名称
*/
deviceName: string;
}
export interface FamilyDeviceForm extends BaseEntity {
/**
* 用户ID
*/
userId?: string | number;
/**
* 用户昵称
*/
nickName?: string;
/**
*
*/
deviceId?: string | number;
/**
* 设备编号
*/
deviceNo?: string;
/**
* 设备名称
*/
deviceName?: string;
}
export interface FamilyDeviceQuery extends PageQuery {
/**
* 用户昵称
*/
nickName?: string;
/**
* 设备编号
*/
deviceNo?: string;
/**
* 设备名称
*/
deviceName?: string;
/**
* 日期范围参数
*/
params?: any;
}

View File

@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { MessageVO, MessageForm, MessageQuery } from '@/api/app/message/types';
/**
* 查询告警消息列列表
* @param query
* @returns {*}
*/
export const listMessage = (query?: MessageQuery): AxiosPromise<MessageVO[]> => {
return request({
url: '/app/message/list',
method: 'get',
params: query
});
};
/**
* 查询告警消息列详细
* @param id
*/
export const getMessage = (id: string | number): AxiosPromise<MessageVO> => {
return request({
url: '/app/message/' + id,
method: 'get'
});
};
/**
* 新增告警消息列
* @param data
*/
export const addMessage = (data: MessageForm) => {
return request({
url: '/app/message',
method: 'post',
data: data
});
};
/**
* 修改告警消息列
* @param data
*/
export const updateMessage = (data: MessageForm) => {
return request({
url: '/app/message',
method: 'put',
data: data
});
};
/**
* 删除告警消息列
* @param id
*/
export const delMessage = (id: string | number | Array<string | number>) => {
return request({
url: '/app/message/' + id,
method: 'delete'
});
};

View File

@@ -0,0 +1,87 @@
export interface MessageVO {
/**
*
*/
id: string | number;
/**
* 类型
*/
category: number;
/**
* 告警类型
*/
categoryName: string;
/**
* 图片地址
*/
image: string;
/**
* 图片地址Url
*/
imageUrl: string;
/**
* 视频地址
*/
video: string | number;
}
export interface MessageForm extends BaseEntity {
/**
*
*/
id?: string | number;
/**
* 类型
*/
category?: number;
/**
* 告警类型
*/
categoryName?: string;
/**
* 图片地址
*/
image?: string;
/**
* 视频地址
*/
video?: string | number;
}
export interface MessageQuery extends PageQuery {
/**
* 类型
*/
category?: number;
/**
* 告警类型
*/
categoryName?: string;
/**
* 图片地址
*/
image?: string;
/**
* 视频地址
*/
video?: string | number;
/**
* 日期范围参数
*/
params?: any;
}

101
src/api/app/user/index.ts Normal file
View File

@@ -0,0 +1,101 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { UserVO, UserForm, UserQuery } from '@/api/app/user/types';
/**
* 查询app用户信息列表
* @param query
* @returns {*}
*/
export const listUser = (query?: UserQuery): AxiosPromise<UserVO[]> => {
return request({
url: '/app/user/list',
method: 'get',
params: query
});
};
/**
* 查询app用户信息详细
* @param userId
*/
export const getUser = (userId: string | number): AxiosPromise<UserVO> => {
return request({
url: '/app/user/' + userId,
method: 'get'
});
};
/**
* 新增app用户信息
* @param data
*/
export const addUser = (data: UserForm) => {
return request({
url: '/app/user',
method: 'post',
data: data
});
};
/**
* 修改app用户信息
* @param data
*/
export const updateUser = (data: UserForm) => {
return request({
url: '/app/user',
method: 'put',
data: data
});
};
/**
* 删除app用户信息
* @param userId
*/
export const delUser = (userId: string | number | Array<string | number>) => {
return request({
url: '/app/user/' + userId,
method: 'delete'
});
};
/**
* 用户状态修改
* @param userId 用户ID
* @param status 用户状态
*/
export const changeUserStatus = (userId: string | number, status: string) => {
const data = {
userId,
status
};
return request({
url: '/app/user/changeStatus',
method: 'put',
data: data
});
};
/**
* 重置用户密码
* @param userId 用户ID
* @param password 新密码
*/
export const resetUserPwd = (userId: string | number, password: string) => {
const data = {
userId,
password
};
return request({
url: '/app/user/resetPwd',
method: 'put',
headers: {
isEncrypt: true,
repeatSubmit: false
},
data: data
});
};

273
src/api/app/user/types.ts Normal file
View File

@@ -0,0 +1,273 @@
export interface UserVO {
/**
* 用户ID
*/
userId: string | number;
/**
* 用户账号
*/
userName: string;
/**
* 用户昵称
*/
nickName: string;
/**
* 身份证号
*/
idCard: string | number;
/**
* 用户类型sys_user系统用户
*/
userType: string;
/**
* 用户邮箱
*/
email: string;
/**
* 手机号码
*/
phonenumber: string;
/**
* 用户性别0男 1女 2未知
*/
sex: string;
/**
* 头像地址
*/
avatar: number;
/**
* 密码
*/
password: string;
/**
* 账号状态0正常 1停用
*/
status: string;
/**
* 人脸
*/
faceAddr: string;
/**
* 手机mac地址
*/
mac: string;
/**
* 邀请码
*/
inviteUsed: string;
/**
* 邀请码创建时间
*/
inviteTime: string;
/**
* 最后登录IP
*/
loginIp: string;
/**
* 最后登录时间
*/
loginDate: string;
/**
* 备注
*/
remark: string;
}
export interface UserForm extends BaseEntity {
/**
* 用户ID
*/
userId?: string | number;
/**
* 用户账号
*/
userName?: string;
/**
* 用户昵称
*/
nickName?: string;
/**
* 身份证号
*/
idCard?: string | number;
/**
* 用户类型sys_user系统用户
*/
userType?: string;
/**
* 用户邮箱
*/
email?: string;
/**
* 手机号码
*/
phonenumber?: string;
/**
* 用户性别0男 1女 2未知
*/
sex?: string;
/**
* 头像地址
*/
avatar?: number;
/**
* 密码
*/
password?: string;
/**
* 账号状态0正常 1停用
*/
status?: string;
/**
* 人脸
*/
faceAddr?: string;
/**
* 手机mac地址
*/
mac?: string;
/**
* 邀请码
*/
inviteUsed?: string;
/**
* 邀请码创建时间
*/
inviteTime?: string;
/**
* 最后登录IP
*/
loginIp?: string;
/**
* 最后登录时间
*/
loginDate?: string;
/**
* 备注
*/
remark?: string;
}
export interface UserQuery extends PageQuery {
/**
* 用户账号
*/
userName?: string;
/**
* 用户昵称
*/
nickName?: string;
/**
* 身份证号
*/
idCard?: string | number;
/**
* 用户类型sys_user系统用户
*/
userType?: string;
/**
* 用户邮箱
*/
email?: string;
/**
* 手机号码
*/
phonenumber?: string;
/**
* 用户性别0男 1女 2未知
*/
sex?: string;
/**
* 头像地址
*/
avatar?: number;
/**
* 密码
*/
password?: string;
/**
* 账号状态0正常 1停用
*/
status?: string;
/**
* 人脸
*/
faceAddr?: string;
/**
* 手机mac地址
*/
mac?: string;
/**
* 邀请码
*/
inviteUsed?: string;
/**
* 邀请码创建时间
*/
inviteTime?: string;
/**
* 最后登录IP
*/
loginIp?: string;
/**
* 最后登录时间
*/
loginDate?: string;
/**
* 日期范围参数
*/
params?: any;
}

View File

@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { UserdeviceTokenVO, UserdeviceTokenForm, UserdeviceTokenQuery } from '@/api/app/userdeviceToken/types';
/**
* 查询推送用户手机token列表
* @param query
* @returns {*}
*/
export const listUserdeviceToken = (query?: UserdeviceTokenQuery): AxiosPromise<UserdeviceTokenVO[]> => {
return request({
url: '/app/userdeviceToken/list',
method: 'get',
params: query
});
};
/**
* 查询推送用户手机token详细
* @param id
*/
export const getUserdeviceToken = (id: string | number): AxiosPromise<UserdeviceTokenVO> => {
return request({
url: '/app/userdeviceToken/' + id,
method: 'get'
});
};
/**
* 新增推送用户手机token
* @param data
*/
export const addUserdeviceToken = (data: UserdeviceTokenForm) => {
return request({
url: '/app/userdeviceToken',
method: 'post',
data: data
});
};
/**
* 修改推送用户手机token
* @param data
*/
export const updateUserdeviceToken = (data: UserdeviceTokenForm) => {
return request({
url: '/app/userdeviceToken',
method: 'put',
data: data
});
};
/**
* 删除推送用户手机token
* @param id
*/
export const delUserdeviceToken = (id: string | number | Array<string | number>) => {
return request({
url: '/app/userdeviceToken/' + id,
method: 'delete'
});
};

View File

@@ -0,0 +1,83 @@
export interface UserdeviceTokenVO {
/**
*
*/
id: string | number;
/**
* 账号用户id
*/
userId: string | number;
/**
* 设备token
*/
token: string;
/**
* 平台 iOS/Android
*/
platform: string;
/**
*
*/
createdTime: string;
}
export interface UserdeviceTokenForm extends BaseEntity {
/**
*
*/
id?: string | number;
/**
* 账号用户id
*/
userId?: string | number;
/**
* 设备token
*/
token?: string;
/**
* 平台 iOS/Android
*/
platform?: string;
/**
*
*/
createdTime?: string;
}
export interface UserdeviceTokenQuery extends PageQuery {
/**
* 账号用户id
*/
userId?: string | number;
/**
* 设备token
*/
token?: string;
/**
* 平台 iOS/Android
*/
platform?: string;
/**
*
*/
createdTime?: string;
/**
* 日期范围参数
*/
params?: any;
}