diff --git a/web/.env.fbw b/web/.env.fbw new file mode 100644 index 0000000..a3b0913 --- /dev/null +++ b/web/.env.fbw @@ -0,0 +1,29 @@ +NODE_ENV=development + +VITE_DEV=true + +# 请求路径 +# VITE_BASE_URL='https://mobile.zdhlcn.com' +# VITE_BASE_URL='https://lock.zdhlcn.com:9807' +VITE_BASE_URL=http://fbw.adtk.cn:28899 + +# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务 +VITE_UPLOAD_TYPE=server + +# 接口地址 +VITE_API_URL=/admin-api + +# 是否删除debugger +VITE_DROP_DEBUGGER=false + +# 是否删除console.log +VITE_DROP_CONSOLE=false + +# 是否sourcemap +VITE_SOURCEMAP=true + +# 打包路径 +VITE_BASE_PATH=/ + +# 输出路径 +VITE_OUT_DIR=dist diff --git a/web/package.json b/web/package.json index c654f14..5fde3b1 100644 --- a/web/package.json +++ b/web/package.json @@ -5,6 +5,7 @@ "scripts": { "i": "pnpm install", "dev": "vite --mode dev", + "dev:fbw": "vite --mode fbw", "dev:test": "vite --mode test", "ts:check": "vue-tsc --noEmit", "build:dev": "vite build --mode dev", diff --git a/web/src/api/interphone/README.md b/web/src/api/interphone/README.md new file mode 100644 index 0000000..99be879 --- /dev/null +++ b/web/src/api/interphone/README.md @@ -0,0 +1,137 @@ +{ + "meta": { + "description": "对讲机管理平台 API 列表 (精简版)", + "note": "所有接口均需携带 access_token 和 openid,此处已省略" + }, + "apis": [ + { + "module": "Auth", + "endpoints": [ + { "name": "获取验证码图片", "url": "/interphone/open-api/auth/getImg", "method": "GET", "params": [] }, + { "name": "校验验证码", "url": "/interphone/open-api/auth/verifyImageCode", "method": "GET", "params": ["token", "x"] }, + { "name": "用户登录", "url": "/interphone/open-api/auth/access_token", "method": "GET", "params": ["username", "password", "user_type", "appId", "appSecret", "token", "x"] } + ] + }, + { + "module": "Profile", + "endpoints": [ + { "name": "个人信息(代理商)", "url": "/interphone/open-api/profile/agent", "method": "GET", "params": [] }, + { "name": "个人信息(单位)", "url": "/interphone/open-api/profile/org", "method": "GET", "params": [] }, + { "name": "修改密码", "url": "/interphone/open-api/profile/password", "method": "POST", "params": ["oldpwd", "newpwd"] }, + { "name": "数据统计", "url": "/interphone/open-api/profile/faststats", "method": "GET", "params": [] }, + { "name": "修改代理商信息", "url": "/interphone/open-api/agent/ModifyingAgentInformation", "method": "POST", "params": ["agentId", "contact", "provinceid"] } + ] + }, + { + "module": "Agent", + "endpoints": [ + { "name": "代理商列表", "url": "/interphone/open-api/agent/list", "method": "GET", "params": ["pageNo", "pageSize", "name"] }, + { "name": "添加代理商", "url": "/interphone/open-api/agent/add", "method": "POST", "params": ["name", "loginname", "password", "contact", "countryid", "address"] }, + { "name": "代理商详情", "url": "/interphone/open-api/agent/detail", "method": "GET", "params": ["id"] }, + { "name": "修改代理商", "url": "/interphone/open-api/agent/updateAgent", "method": "POST", "params": ["agentId", "name", "contact", "countryid"] }, + { "name": "点卡充值", "url": "/interphone/open-api/agent/blance/add", "method": "POST", "params": ["agentId", "chargetype", "count"] }, + { "name": "点卡收回", "url": "/interphone/open-api/agent/cardRecovery", "method": "POST", "params": ["agentId", "cardType", "recoveryNumber"] }, + { "name": "获取下级代理商名", "url": "/interphone/open-api/agent/getAgentName", "method": "GET", "params": [] }, + { "name": "获取群组名称", "url": "/interphone/open-api/group/getGroupName", "method": "GET", "params": ["orgId", "isactive"] }, + { "name": "查询下级用户", "url": "/interphone/open-api/terminal/querySubordinateUser", "method": "GET", "params": ["pageNo", "pageSize", "agentId", "orgid", "groupid", "userName", "account"] } + ] + }, + { + "module": "Org", + "endpoints": [ + { "name": "单位列表", "url": "/interphone/open-api/agent/orgs", "method": "GET", "params": ["pageNo", "pageSize", "name"] }, + { "name": "添加单位", "url": "/interphone/open-api/org/add", "method": "POST", "params": ["name", "loginname", "password", "contact", "phone", "address", "isDefault", "defaultName"] }, + { "name": "修改单位", "url": "/interphone/open-api/org/xiugaiUnit", "method": "POST", "params": ["id", "corgName", "contact", "address"] }, + { "name": "删除单位", "url": "/interphone/open-api/org/deletingUnit", "method": "POST", "params": ["id"] }, + { "name": "单位详情", "url": "/interphone/open-api/org/info", "method": "GET", "params": ["id"] }, + { "name": "获取单位名称", "url": "/interphone/open-api/org/getOrgName", "method": "GET", "params": ["agentId"] } + ] + }, + { + "module": "Group", + "endpoints": [ + { "name": "群组列表", "url": "/interphone/open-api/group/list", "method": "GET", "params": ["pageNo", "pageSize", "name", "orgname", "org_id", "type"] }, + { "name": "添加群组", "url": "/interphone/open-api/group/add", "method": "POST", "params": ["orgid", "cgName", "cg_speech_limit_second", "remarks"] }, + { "name": "群组详情", "url": "/interphone/open-api/group/detail", "method": "GET", "params": ["id"] }, + { "name": "编辑群组", "url": "/interphone/open-api/group/updateGroup", "method": "POST", "params": ["id", "cgName", "cg_speech_limit_second", "remarks"] }, + { "name": "删除群组", "url": "/interphone/open-api/group/delete", "method": "POST", "params": ["id"] }, + { "name": "获取群组成员", "url": "/interphone/open-api/group/members", "method": "GET", "params": ["id", "username"] }, + { "name": "设置主持人", "url": "/interphone/open-api/group/updateHost", "method": "POST", "params": ["groupId", "hnet_id"] }, + { "name": "获取不在组成员", "url": "/interphone/open-api/group/unmembers", "method": "GET", "params": ["id", "org_id", "username"] }, + { "name": "添加群组成员", "url": "/interphone/open-api/group/members/add", "method": "POST", "params": ["id", "members"] }, + { "name": "移除群组成员", "url": "/interphone/open-api/group/members/remove", "method": "POST", "params": ["id", "members"] }, + { "name": "修改成员优先级", "url": "/interphone/open-api/group/members/priorities", "method": "POST", "params": ["id", "userId", "priorities"] }, + { "name": "获取用户群组", "url": "/interphone/open-api/jsp/queryGroupByUId", "method": "GET", "params": ["id"] }, + { "name": "换群组", "url": "/interphone/open-api/group/joinGroup", "method": "POST", "params": ["userlds", "orgid", "groupid", "isDefault"] }, + { "name": "查询用户群组", "url": "/interphone/open-api/group/groupSelect", "method": "POST", "params": ["orgid", "userId", "state", "zuname"] }, + { "name": "批量添加群组", "url": "/interphone/open-api/group/batchaddgroup", "method": "POST", "params": ["userid", "groupArray"] }, + { "name": "批量移除群组", "url": "/interphone/open-api/group/batchdelete", "method": "POST", "params": ["uogid[]"] }, + { "name": "查询监听状态", "url": "/interphone/open-api/group/queryMonitorGroup", "method": "POST", "params": ["userId", "type", "keyword"] }, + { "name": "添加监听群组", "url": "/interphone/open-api/group/addMonitorGroup", "method": "POST", "params": ["userId", "groupIds"] }, + { "name": "移除监听群组", "url": "/interphone/open-api/group/MonitorGroup", "method": "POST", "params": ["userId", "cgids"] } + ] + }, + { + "module": "Terminal", + "endpoints": [ + { "name": "导入Excel", "url": "/interphone/open-api/terminal/analysisExcel", "method": "POST", "params": ["file"] }, + { "name": "判断用户存在", "url": "/interphone/open-api/terminal/isAddUser", "method": "POST", "params": ["imei"] }, + { "name": "批量创建用户", "url": "/interphone/open-api/terminal/batch", "method": "POST", "params": ["orgId", "groups", "prefix", "accounts", "beizhu", "cardTypes"] }, + { "name": "用户列表", "url": "/interphone/open-api/terminal/list", "method": "GET", "params": ["pageNo", "pageSize", "org_id", "groupid", "name", "userStatus", "audioStatus", "servicetype", "iccid", "serviceType", "createStartAt", "createEndAt"] }, + { "name": "用户详情", "url": "/interphone/open-api/terminal/detail", "method": "GET", "params": ["id"] }, + { "name": "修改用户", "url": "/interphone/open-api/terminal/updateUser", "method": "POST", "params": ["userId", "beizhu", "orgid", "userName", "userMobile", "enable", "userAudioStatus", "allowcall", "gpsSwitch", "user_type"] }, + { "name": "遥开/遥毙", "url": "/interphone/open-api/terminal/updateUserVoice", "method": "POST", "params": ["userlds", "voice"] }, + { "name": "暂停/开启账号", "url": "/interphone/open-api/terminal/updateUserEnable", "method": "POST", "params": ["userlds", "enable"] }, + { "name": "删除用户", "url": "/interphone/open-api/terminal/deleteUser", "method": "POST", "params": ["userlds"] }, + { "name": "换号", "url": "/interphone/open-api/terminal/changecard", "method": "POST", "params": ["oldAccount", "newAccount"] }, + { "name": "导出未登录", "url": "/interphone/open-api/terminal/exportUserInfo", "method": "GET", "params": ["agentId", "dateType", "platform"] }, + { "name": "开通服务", "url": "/interphone/open-api/terminal/addService", "method": "GET", "params": ["userids", "type", "dateType"] }, + { "name": "删除服务", "url": "/interphone/open-api/terminal/deleteService", "method": "GET", "params": ["userids", "type"] }, + { "name": "服务列表", "url": "/interphone/open-api/terminal/serviceList", "method": "GET", "params": ["pageNo", "pageSize", "user_id"] }, + { "name": "修改服务", "url": "/interphone/open-api/terminal/updateService", "method": "GET", "params": ["user_id", "type", "dateType"] } + ] + }, + { + "module": "Location", + "endpoints": [ + { "name": "查询定位", "url": "/interphone/open-api/location/locat", "method": "GET", "params": ["id"] }, + { "name": "批量定位", "url": "/interphone/open-api/location/locatBatch", "method": "POST", "params": ["ids"] }, + { "name": "定位列表", "url": "/interphone/open-api/location/locatList", "method": "GET", "params": ["pageNo", "pageSize", "user_id"] }, + { "name": "导出轨迹", "url": "/interphone/open-api/location/locatExport", "method": "GET", "params": ["user_id", "start", "end"] } + ] + }, + { + "module": "Broadcast", + "endpoints": [ + { "name": "添加广播", "url": "/interphone/open-api/broadcast/add", "method": "POST", "params": ["name", "org_id"] }, + { "name": "修改广播", "url": "/interphone/open-api/broadcast/update", "method": "POST", "params": ["id", "name"] }, + { "name": "删除广播", "url": "/interphone/open-api/broadcast/delete", "method": "POST", "params": ["id"] }, + { "name": "广播列表", "url": "/interphone/open-api/broadcast/list", "method": "GET", "params": ["pageNo", "pageSize", "org_id"] }, + { "name": "广播详情", "url": "/interphone/open-api/broadcast/detail", "method": "GET", "params": ["id"] }, + { "name": "广播成员", "url": "/interphone/open-api/broadcast/members", "method": "GET", "params": ["id"] }, + { "name": "添加广播成员", "url": "/interphone/open-api/broadcast/members/add", "method": "POST", "params": ["id", "members"] }, + { "name": "移除广播成员", "url": "/interphone/open-api/broadcast/members/remove", "method": "POST", "params": ["id", "members"] } + ] + }, + { + "module": "Log", + "endpoints": [ + { "name": "操作日志", "url": "/interphone/open-api/log/list", "method": "GET", "params": ["pageNo", "pageSize", "type", "start", "end"] }, + { "name": "导出日志", "url": "/interphone/open-api/log/export", "method": "GET", "params": ["type", "start", "end"] } + ] + }, + { + "module": "Notice", + "endpoints": [ + { "name": "通知列表", "url": "/interphone/open-api/notice/getNotice", "method": "POST", "params": ["type", "startDate", "endDate"] }, + { "name": "未读数", "url": "/interphone/open-api/notice/newUnreadCount", "method": "GET", "params": ["agentId"] } + ] + }, + { + "module": "SoundRecord", + "endpoints": [ + { "name": "录音查询", "url": "/interphone/open-api/soundRecord/querySoundRecord", "method": "GET", "params": ["orgId", "groupId", "startDate"] } + ] + } + ] +} \ No newline at end of file diff --git a/web/src/api/interphone/agent.ts b/web/src/api/interphone/agent.ts new file mode 100644 index 0000000..e1838e8 --- /dev/null +++ b/web/src/api/interphone/agent.ts @@ -0,0 +1,130 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 代理商相关类型定义 + */ + +// 代理商信息 +export interface Agent { + id?: string + name?: string + loginname?: string + contact?: string + countryid?: string + address?: string + [key: string]: any +} + +// 单位信息 +export interface Org { + id?: string + name?: string + [key: string]: any +} + +// 查询代理商列表参数 +export interface AgentListParams { + pageNo: number + pageSize: number + name?: string +} + +// 查询单位列表参数 +export interface OrgListParams { + pageNo: number + pageSize: number + name?: string +} + +// 添加代理商参数 +export interface AddAgentData { + name: string + loginname: string + password: string + contact?: string + countryid?: string + address?: string +} + +// 修改代理商参数 +export interface UpdateAgentData { + agentId: string + name?: string + contact?: string + countryid?: string +} + +// 点卡充值参数 +export interface AddBalanceData { + agentId: string + chargetype: string + count: number +} + +// 点卡收回参数 +export interface CardRecoveryData { + agentId: string + cardType: string + recoveryNumber: number +} + +// 查询下级用户参数 +export interface SubordinateUserParams { + pageNo: number + pageSize: number + agentId?: string + orgid?: string + groupid?: string + userName?: string + account?: string +} + +/** + * 代理商相关接口 + */ + +// 查询代理商列表 +export const getAgentList = (params: AgentListParams) => { + return request.get({ url: '/interphone/open-api/agent/list', params }).then(res =>JSON.parse(res)) +} + +// 添加代理商 +export const addAgent = (data: AddAgentData) => { + return request.post({ url: '/interphone/open-api/agent/add', data }).then(res =>JSON.parse(res)) +} + +// 查询代理商详情 +export const getAgentDetail = (id: string) => { + return request.get({ url: '/interphone/open-api/agent/detail', params: { id } }).then(res =>JSON.parse(res)) +} + +// 修改代理商 +export const updateAgent = (data: UpdateAgentData) => { + return request.post({ url: '/interphone/open-api/agent/updateAgent', data }).then(res =>JSON.parse(res)) +} + +// 点卡充值 +export const addAgentBalance = (data: AddBalanceData) => { + return request.post({ url: '/interphone/open-api/agent/blance/add', data }).then(res =>JSON.parse(res)) +} + +// 点卡收回 +export const cardRecovery = (data: CardRecoveryData) => { + return request.post({ url: '/interphone/open-api/agent/cardRecovery', data }).then(res =>JSON.parse(res)) +} + +// 获取下级代理商名 +export const getAgentName = () => { + return request.get({ url: '/interphone/open-api/agent/getAgentName' }).then(res =>JSON.parse(res)) +} + +// 查询单位列表 +export const getAgentOrgs = (params: OrgListParams) => { + return request.get({ url: '/interphone/open-api/agent/orgs', params }).then(res =>JSON.parse(res)) +} + +// 查询下级用户 +export const querySubordinateUser = (params: SubordinateUserParams) => { + return request.get({ url: '/interphone/open-api/terminal/querySubordinateUser', params }).then(res =>JSON.parse(res)) +} diff --git a/web/src/api/interphone/broadcast.ts b/web/src/api/interphone/broadcast.ts new file mode 100644 index 0000000..9aa1fc7 --- /dev/null +++ b/web/src/api/interphone/broadcast.ts @@ -0,0 +1,99 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 广播相关类型定义 + */ + +// 广播信息 +export interface Broadcast { + id?: string + name?: string + org_id?: string + [key: string]: any +} + +// 查询广播列表参数 +export interface BroadcastListParams { + pageNo: number + pageSize: number + org_id?: string +} + +// 添加广播参数 +export interface AddBroadcastData { + name: string + org_id: string +} + +// 修改广播参数 +export interface UpdateBroadcastData { + id: string + name?: string +} + +// 删除广播参数 +export interface DeleteBroadcastData { + id: string +} + +// 获取广播成员参数 +export interface GetBroadcastMembersParams { + id: string +} + +// 添加广播成员参数 +export interface AddBroadcastMembersData { + id: string + members: string[] +} + +// 移除广播成员参数 +export interface RemoveBroadcastMembersData { + id: string + members: string[] +} + +/** + * 广播相关接口 + */ + +// 添加广播 +export const addBroadcast = (data: AddBroadcastData) => { + return request.post({ url: '/interphone/open-api/broadcast/add', data }) +} + +// 修改广播 +export const updateBroadcast = (data: UpdateBroadcastData) => { + return request.post({ url: '/interphone/open-api/broadcast/update', data }) +} + +// 删除广播 +export const deleteBroadcast = (data: DeleteBroadcastData) => { + return request.post({ url: '/interphone/open-api/broadcast/delete', data }) +} + +// 广播列表 +export const getBroadcastList = (params: BroadcastListParams) => { + return request.get({ url: '/interphone/open-api/broadcast/list', params }) +} + +// 广播详情 +export const getBroadcastDetail = (id: string) => { + return request.get({ url: '/interphone/open-api/broadcast/detail', params: { id } }) +} + +// 广播成员 +export const getBroadcastMembers = (id: string) => { + return request.get({ url: '/interphone/open-api/broadcast/members', params: { id } }) +} + +// 添加广播成员 +export const addBroadcastMembers = (data: AddBroadcastMembersData) => { + return request.post({ url: '/interphone/open-api/broadcast/members/add', data }) +} + +// 移除广播成员 +export const removeBroadcastMembers = (data: RemoveBroadcastMembersData) => { + return request.post({ url: '/interphone/open-api/broadcast/members/remove', data }) +} diff --git a/web/src/api/interphone/group.ts b/web/src/api/interphone/group.ts new file mode 100644 index 0000000..7b7fac3 --- /dev/null +++ b/web/src/api/interphone/group.ts @@ -0,0 +1,237 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 群组相关类型定义 + */ + +// 群组信息 +export interface Group { + id?: string + name?: string + orgId?: string + orgname?: string + type?: string + cg_speech_limit_second?: number + remarks?: string + [key: string]: any +} + +// 查询群组列表参数 +export interface GroupListParams { + pageNo: number + pageSize: number + name?: string + orgname?: string + org_id?: string + type?: string +} + +// 新增群组参数 +export interface AddGroupData { + orgid: string + cgName: string + cg_speech_limit_second?: number + remarks?: string +} + +// 编辑群组参数 +export interface UpdateGroupData { + id: string + cgName?: string + cg_speech_limit_second?: number + remarks?: string +} + +// 删除群组参数 +export interface DeleteGroupData { + id: string +} + +// 获取群组成员参数 +export interface GetGroupMembersParams { + id: string + username?: string +} + +// 设置主持人参数 +export interface UpdateHostData { + groupId: string + hnet_id: string +} + +// 获取不在组成员参数 +export interface GetUnmembersParams { + id: string + org_id?: string + username?: string +} + +// 添加群组成员参数 +export interface AddGroupMembersData { + id: string + members: string[] +} + +// 移除群组成员参数 +export interface RemoveGroupMembersData { + id: string + members: string[] +} + +// 修改成员优先级参数 +export interface UpdateMemberPriorityData { + id: string + userId: string + priorities: number +} + +// 换群组参数 +export interface JoinGroupData { + userlds: string[] + orgid: string + groupid: string + isDefault?: string +} + +// 查询用户群组参数 +export interface QueryUserGroupData { + orgid: string + userId: string + state?: string + zuname?: string +} + +// 批量添加群组参数 +export interface BatchAddGroupData { + userid: string + groupArray: string[] +} + +// 批量移除群组参数 +export interface BatchDeleteGroupData { + uogid: string[] +} + +// 查询监听状态参数 +export interface QueryMonitorGroupData { + userId: string + type?: string + keyword?: string +} + +// 添加监听群组参数 +export interface AddMonitorGroupData { + userId: string + groupIds: string[] +} + +// 移除监听群组参数 +export interface RemoveMonitorGroupData { + userId: string + cgids: string[] +} + +/** + * 群组相关接口 + */ + +// 查询群组列表 +export const getGroupList = (params: GroupListParams) : Promise>=> { + return request.get({ url: '/interphone/open-api/group/list', params }).then(res =>JSON.parse(res)) +} + +// 添加群组 +export const addGroup = (data: AddGroupData) => { + return request.post({ url: '/interphone/open-api/group/add', data }).then(res =>JSON.parse(res)) +} + +// 查询群组详情 +export const getGroupDetail = (id: string) => { + return request.get({ url: '/interphone/open-api/group/detail', params: { id } }).then(res =>JSON.parse(res)) +} + +// 编辑群组 +export const updateGroup = (data: UpdateGroupData) => { + return request.post({ url: '/interphone/open-api/group/updateGroup', data }).then(res =>JSON.parse(res)) +} + +// 删除群组 +export const deleteGroup = (data: DeleteGroupData) => { + return request.post({ url: '/interphone/open-api/group/delete', data }).then(res =>JSON.parse(res)) +} + +// 获取群组成员 +export const getGroupMembers = (params: GetGroupMembersParams) => { + return request.get({ url: '/interphone/open-api/group/members', params }).then(res =>JSON.parse(res)) +} + +// 设置主持人 +export const updateHost = (data: UpdateHostData) => { + return request.post({ url: '/interphone/open-api/group/updateHost', data }).then(res =>JSON.parse(res)) +} + +// 获取不在组成员 +export const getUnmembers = (params: GetUnmembersParams) => { + return request.get({ url: '/interphone/open-api/group/unmembers', params }).then(res =>JSON.parse(res)) +} + +// 添加群组成员 +export const addGroupMembers = (data: AddGroupMembersData) => { + return request.post({ url: '/interphone/open-api/group/members/add', data }).then(res =>JSON.parse(res)) +} + +// 移除群组成员 +export const removeGroupMembers = (data: RemoveGroupMembersData) => { + return request.post({ url: '/interphone/open-api/group/members/remove', data }).then(res =>JSON.parse(res)) +} + +// 修改成员优先级 +export const updateMemberPriority = (data: UpdateMemberPriorityData) => { + return request.post({ url: '/interphone/open-api/group/members/priorities', data }).then(res =>JSON.parse(res)) +} + +// 查询用户群组 +export const queryGroupByUid = (id: string) => { + return request.get({ url: '/interphone/open-api/jsp/queryGroupByUId', params: { id } }).then(res =>JSON.parse(res)) +} + +// 换群组 +export const joinGroup = (data: JoinGroupData) => { + return request.post({ url: '/interphone/open-api/group/joinGroup', data }).then(res =>JSON.parse(res)) +} + +// 查询用户群组 +export const queryUserGroup = (data: QueryUserGroupData) => { + return request.post({ url: '/interphone/open-api/group/groupSelect', data }).then(res =>JSON.parse(res)) +} + +// 批量添加群组 +export const batchAddGroup = (data: BatchAddGroupData) => { + return request.post({ url: '/interphone/open-api/group/batchaddgroup', data }).then(res =>JSON.parse(res)) +} + +// 批量移除群组 +export const batchDeleteGroup = (data: BatchDeleteGroupData) => { + return request.post({ url: '/interphone/open-api/group/batchdelete', data }).then(res =>JSON.parse(res)) +} + +// 查询监听状态 +export const queryMonitorGroup = (data: QueryMonitorGroupData) => { + return request.post({ url: '/interphone/open-api/group/queryMonitorGroup', data }).then(res =>JSON.parse(res)) +} + +// 添加监听群组 +export const addMonitorGroup = (data: AddMonitorGroupData) => { + return request.post({ url: '/interphone/open-api/group/addMonitorGroup', data }).then(res =>JSON.parse(res)) +} + +// 移除监听群组 +export const removeMonitorGroup = (data: RemoveMonitorGroupData) => { + return request.post({ url: '/interphone/open-api/group/MonitorGroup', data }).then(res =>JSON.parse(res)) +} + +// 查询群组名称 +export const getGroupName = (params: { orgId: string; isactive?: string })=> { + return request.get({ url: '/interphone/open-api/group/getGroupName', params }).then(res =>JSON.parse(res)) +} diff --git a/web/src/api/interphone/location.ts b/web/src/api/interphone/location.ts new file mode 100644 index 0000000..d210943 --- /dev/null +++ b/web/src/api/interphone/location.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 定位相关类型定义 + */ + +// 定位信息 +export interface Location { + id?: string + user_id?: string + latitude?: number + longitude?: number + address?: string + createTime?: string + [key: string]: any +} + +// 查询定位参数 +export interface GetLocationParams { + id: string +} + +// 批量定位参数 +export interface BatchLocationData { + ids: string[] +} + +// 定位列表参数 +export interface LocationListParams { + pageNo: number + pageSize: number + user_id: string +} + +// 导出轨迹参数 +export interface ExportTrackParams { + user_id: string + start: string + end: string +} + +/** + * 定位相关接口 + */ + +// 查询定位 +export const getLocation = (id: string) => { + return request.get({ url: '/interphone/open-api/location/locat', params: { id } }) +} + +// 批量定位 +export const batchLocation = (data: BatchLocationData) => { + return request.post({ url: '/interphone/open-api/location/locatBatch', data }) +} + +// 定位列表 +export const getLocationList = (params: LocationListParams) => { + return request.get({ url: '/interphone/open-api/location/locatList', params }) +} + +// 导出轨迹 +export const exportTrack = (params: ExportTrackParams) => { + return request.get({ url: '/interphone/open-api/location/locatExport', params }) +} diff --git a/web/src/api/interphone/log.ts b/web/src/api/interphone/log.ts new file mode 100644 index 0000000..6c0672d --- /dev/null +++ b/web/src/api/interphone/log.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 日志相关类型定义 + */ + +// 日志信息 +export interface Log { + id?: string + type?: string + content?: string + createTime?: string + [key: string]: any +} + +// 操作日志参数 +export interface LogListParams { + pageNo: number + pageSize: number + type?: string + start?: string + end?: string +} + +// 导出日志参数 +export interface ExportLogParams { + type?: string + start?: string + end?: string +} + +/** + * 日志相关接口 + */ + +// 操作日志 +export const getLogList = (params: LogListParams) => { + return request.get({ url: '/interphone/open-api/log/list', params }) +} + +// 导出日志 +export const exportLog = (params: ExportLogParams) => { + return request.get({ url: '/interphone/open-api/log/export', params }) +} diff --git a/web/src/api/interphone/notice.ts b/web/src/api/interphone/notice.ts new file mode 100644 index 0000000..4d80c83 --- /dev/null +++ b/web/src/api/interphone/notice.ts @@ -0,0 +1,41 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 通知相关类型定义 + */ + +// 通知信息 +export interface Notice { + id?: string + type?: string + content?: string + createTime?: string + [key: string]: any +} + +// 通知列表参数 +export interface NoticeListData { + type?: string + startDate?: string + endDate?: string +} + +// 未读数参数 +export interface UnreadCountParams { + agentId: string +} + +/** + * 通知相关接口 + */ + +// 通知列表 +export const getNoticeList = (data: NoticeListData) => { + return request.post({ url: '/interphone/open-api/notice/getNotice', data }) +} + +// 未读数 +export const getUnreadCount = (params: UnreadCountParams) => { + return request.get({ url: '/interphone/open-api/notice/newUnreadCount', params }) +} diff --git a/web/src/api/interphone/org.ts b/web/src/api/interphone/org.ts new file mode 100644 index 0000000..d320df9 --- /dev/null +++ b/web/src/api/interphone/org.ts @@ -0,0 +1,85 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 单位相关类型定义 + */ + +// 单位信息 +export interface Org { + id?: string + name?: string + loginname?: string + contact?: string + phone?: string + address?: string + isDefault?: string + defaultName?: string + [key: string]: any +} + +// 查询单位列表参数 +export interface OrgListParams { + pageNo: number + pageSize: number + name?: string +} + +// 添加单位参数 +export interface AddOrgData { + name: string + loginname: string + password: string + contact?: string + phone?: string + address?: string + isDefault?: string + defaultName?: string +} + +// 修改单位参数 +export interface UpdateOrgData { + id: string + corgName?: string + contact?: string + address?: string +} + +// 删除单位参数 +export interface DeleteOrgData { + id: string +} + +/** + * 单位相关接口 + */ + +// 查询单位列表 +export const getOrgList = (params: OrgListParams) => { + return request.get({ url: '/interphone/open-api/agent/orgs', params }).then(res =>JSON.parse(res)) +} + +// 添加单位 +export const addOrg = (data: AddOrgData) => { + return request.post({ url: '/interphone/open-api/org/add', data }).then(res =>JSON.parse(res)) +} + +// 修改单位 +export const updateOrg = (data: UpdateOrgData) => { + return request.post({ url: '/interphone/open-api/org/xiugaiUnit', data }).then(res =>JSON.parse(res)) +} + +// 删除单位 +export const deleteOrg = (data: DeleteOrgData) => { + return request.post({ url: '/interphone/open-api/org/deletingUnit', data }).then(res =>JSON.parse(res)) +} + +// 查询单位详情 +export const getOrgDetail = (id: string) => { + return request.get({ url: '/interphone/open-api/org/info', params: { id } }).then(res =>JSON.parse(res)) +} + +// 获取单位名称 +export const getOrgName = (agentId: string) => { + return request.get({ url: '/interphone/open-api/org/getOrgName', params: { agentId } }).then(res =>JSON.parse(res)) +} diff --git a/web/src/api/interphone/profile.ts b/web/src/api/interphone/profile.ts new file mode 100644 index 0000000..c3095b4 --- /dev/null +++ b/web/src/api/interphone/profile.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 个人信息与统计相关类型定义 + */ + +// 统计信息 +export interface FastStats { + agentCount?: number + orgCount?: number + groupCount?: number + userCount?: number + [key: string]: any +} + +// 代理商个人信息 +export interface AgentProfile { + id?: string + name?: string + [key: string]: any +} + +// 单位个人信息 +export interface OrgProfile { + id?: string + name?: string + [key: string]: any +} + +// 修改密码参数 +export interface UpdatePasswordData { + oldpwd: string + newpwd: string +} + +// 修改代理商信息参数 +export interface UpdateAgentInfoData { + agentId: string + contact?: string + provinceid?: string +} + +/** + * 个人信息与统计相关接口 + */ + +// 查询代理商单位群组用户统计 +export const getFastStats = () => { + return request.get>({ url: '/interphone/open-api/profile/faststats' }) +} + +// 获取代理商个人信息 +export const getAgentProfile = () => { + return request.get>({ url: '/interphone/open-api/profile/agent' }) +} + +// 获取单位个人信息 +export const getOrgProfile = () => { + return request.get>({ url: '/interphone/open-api/profile/org' }) +} + +// 修改密码 +export const updatePassword = (data: UpdatePasswordData) => { + return request.post({ url: '/interphone/open-api/profile/password', data }) +} + +// 修改代理商信息 +export const updateAgentInfo = (data: UpdateAgentInfoData) => { + return request.post({ url: '/interphone/open-api/agent/ModifyingAgentInformation', data }) +} diff --git a/web/src/api/interphone/record.ts b/web/src/api/interphone/record.ts new file mode 100644 index 0000000..8cc00c9 --- /dev/null +++ b/web/src/api/interphone/record.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 录音相关类型定义 + */ + +// 录音信息 +export interface SoundRecord { + id?: string + orgId?: string + groupId?: string + userId?: string + startDate?: string + [key: string]: any +} + +// 查询录音列表参数 +export interface RecordListParams { + pageNo?: number + pageSize?: number + [key: string]: any +} + +// 查询录音参数 +export interface QuerySoundRecordParams { + orgId?: string + groupId?: string + startDate?: string +} + +/** + * 录音相关接口 + */ + +// 查询录音列表 +export const getRecordList = (params: RecordListParams) => { + return request.get({ url: '/interphone/open-api/record/list', params }) +} + +// 录音查询 +export const querySoundRecord = (params: QuerySoundRecordParams) => { + return request.get({ url: '/interphone/open-api/soundRecord/querySoundRecord', params }) +} diff --git a/web/src/api/interphone/terminal.ts b/web/src/api/interphone/terminal.ts new file mode 100644 index 0000000..7b89d9d --- /dev/null +++ b/web/src/api/interphone/terminal.ts @@ -0,0 +1,223 @@ +import request from '@/config/axios' +import type { CommonResult } from './types' + +/** + * 对讲用户相关类型定义 + */ + +// 对讲用户信息 +export interface TerminalUser { + id?: string + name?: string + userName?: string + account?: string + orgId?: string + orgid?: string + groupId?: string + groupid?: string + agentId?: string + imei?: string + userMobile?: string + beizhu?: string + enable?: string + userStatus?: string + audioStatus?: string + servicetype?: string + iccid?: string + userAudioStatus?: string + allowcall?: string + gpsSwitch?: string + user_type?: string + [key: string]: any +} + +// 查询对讲用户列表参数 +export interface TerminalListParams { + pageNo: number + pageSize: number + org_id?: string + groupid?: string + name?: string + userStatus?: string + audioStatus?: string + servicetype?: string + iccid?: string + serviceType?: string + createStartAt?: string + createEndAt?: string +} + +// 导入Excel参数 +export interface ImportExcelData { + file: File +} + +// 判断用户存在参数 +export interface CheckUserExistData { + imei: string +} + +// 批量创建用户参数 +export interface BatchCreateUsersData { + orgId: string + groups: string + prefix?: string + accounts: string + beizhu?: string + cardTypes?: string +} + +// 修改用户信息参数 +export interface UpdateTerminalUserData { + userId: string + beizhu?: string + orgid?: string + userName?: string + userMobile?: string + enable?: string + userAudioStatus?: string + allowcall?: string + gpsSwitch?: string + user_type?: string +} + +// 遥开/遥毙参数 +export interface UpdateUserVoiceData { + userlds: string[] + voice: string +} + +// 暂停/开启账号参数 +export interface UpdateUserEnableData { + userlds: string[] + enable: string +} + +// 删除用户参数 +export interface DeleteTerminalUserData { + userlds: string[] +} + +// 换号参数 +export interface ChangeCardData { + oldAccount: string + newAccount: string +} + +// 导出未登录参数 +export interface ExportUserInfoParams { + agentId: string + dateType: string + platform?: string +} + +// 开通服务参数 +export interface AddServiceParams { + userids: string + type: string + dateType: string +} + +// 删除服务参数 +export interface DeleteServiceParams { + userids: string + type: string +} + +// 服务列表参数 +export interface ServiceListParams { + pageNo: number + pageSize: number + user_id: string +} + +// 修改服务参数 +export interface UpdateServiceParams { + user_id: string + type: string + dateType: string +} + +/** + * 对讲用户相关接口 + */ + +// 导入Excel +export const importExcel = (data: ImportExcelData) => { + return request.post({ url: '/interphone/open-api/terminal/analysisExcel', data }).then(res =>JSON.parse(res)) +} + +// 判断用户存在 +export const checkUserExist = (data: CheckUserExistData) => { + return request.post({ url: '/interphone/open-api/terminal/isAddUser', data }).then(res =>JSON.parse(res)) +} + +// 批量创建用户 +export const batchCreateUsers = (data: BatchCreateUsersData) => { + return request.post({ url: '/interphone/open-api/terminal/batch', data }).then(res =>JSON.parse(res)) +} + +// 查询对讲用户列表 +export const getTerminalList = (params: TerminalListParams) => { + return request.get({ url: '/interphone/open-api/terminal/list', params }).then(res =>JSON.parse(res)) +} + +// 查询对讲用户详情 +export const getTerminalDetail = (id: string) => { + return request.get({ url: '/interphone/open-api/terminal/detail', params: { id } }).then(res =>JSON.parse(res)) +} + +// 查询对讲用户在线状态 +export const getTerminalUserOnlineStatus = (params: Record) => { + return request.get({ url: '/interphone/open-api/terminal/userOnlineStatus', params }).then(res =>JSON.parse(res)) +} + +// 修改用户信息 +export const updateTerminalUser = (data: UpdateTerminalUserData) => { + return request.post({ url: '/interphone/open-api/terminal/updateUser', data }).then(res =>JSON.parse(res)) +} + +// 遥开/遥毙 +export const updateUserVoice = (data: UpdateUserVoiceData) => { + return request.post({ url: '/interphone/open-api/terminal/updateUserVoice', data }).then(res =>JSON.parse(res)) +} + +// 暂停/开启账号 +export const updateUserEnable = (data: UpdateUserEnableData) => { + return request.post({ url: '/interphone/open-api/terminal/updateUserEnable', data }).then(res =>JSON.parse(res)) +} + +// 删除用户 +export const deleteTerminalUser = (data: DeleteTerminalUserData) => { + return request.post({ url: '/interphone/open-api/terminal/deleteUser', data }).then(res =>JSON.parse(res)) +} + +// 换号 +export const changeCard = (data: ChangeCardData) => { + return request.post({ url: '/interphone/open-api/terminal/changecard', data }).then(res =>JSON.parse(res)) +} + +// 导出未登录 +export const exportUserInfo = (params: ExportUserInfoParams) => { + return request.get({ url: '/interphone/open-api/terminal/exportUserInfo', params }).then(res =>JSON.parse(res)) +} + +// 开通服务 +export const addService = (params: AddServiceParams) => { + return request.get({ url: '/interphone/open-api/terminal/addService', params }).then(res =>JSON.parse(res)) +} + +// 删除服务 +export const deleteService = (params: DeleteServiceParams) => { + return request.get({ url: '/interphone/open-api/terminal/deleteService', params }).then(res =>JSON.parse(res)) +} + +// 服务列表 +export const getServiceList = (params: ServiceListParams) => { + return request.get({ url: '/interphone/open-api/terminal/serviceList', params }).then(res =>JSON.parse(res)) +} + +// 修改服务 +export const updateService = (params: UpdateServiceParams) => { + return request.get({ url: '/interphone/open-api/terminal/updateService', params }).then(res =>JSON.parse(res)) +} diff --git a/web/src/api/interphone/types.ts b/web/src/api/interphone/types.ts new file mode 100644 index 0000000..41bc8d6 --- /dev/null +++ b/web/src/api/interphone/types.ts @@ -0,0 +1,10 @@ +/** + * 对讲平台代理 - 通用类型定义 + */ + +// 通用返回结果 +export interface CommonResult { + code: number + data: T + msg: string +} diff --git a/web/src/views/interphone/agent/AgentBalanceDialog.vue b/web/src/views/interphone/agent/AgentBalanceDialog.vue new file mode 100644 index 0000000..908e48e --- /dev/null +++ b/web/src/views/interphone/agent/AgentBalanceDialog.vue @@ -0,0 +1,105 @@ + + + diff --git a/web/src/views/interphone/agent/AgentDetail.vue b/web/src/views/interphone/agent/AgentDetail.vue new file mode 100644 index 0000000..08a7f82 --- /dev/null +++ b/web/src/views/interphone/agent/AgentDetail.vue @@ -0,0 +1,58 @@ + + + diff --git a/web/src/views/interphone/agent/AgentForm.vue b/web/src/views/interphone/agent/AgentForm.vue new file mode 100644 index 0000000..58f54e6 --- /dev/null +++ b/web/src/views/interphone/agent/AgentForm.vue @@ -0,0 +1,142 @@ + + + diff --git a/web/src/views/interphone/agent/index.vue b/web/src/views/interphone/agent/index.vue new file mode 100644 index 0000000..50416bf --- /dev/null +++ b/web/src/views/interphone/agent/index.vue @@ -0,0 +1,161 @@ + + + diff --git a/web/src/views/interphone/group/GroupForm.vue b/web/src/views/interphone/group/GroupForm.vue new file mode 100644 index 0000000..7d9e437 --- /dev/null +++ b/web/src/views/interphone/group/GroupForm.vue @@ -0,0 +1,179 @@ + + + diff --git a/web/src/views/interphone/group/index.vue b/web/src/views/interphone/group/index.vue new file mode 100644 index 0000000..16a6c00 --- /dev/null +++ b/web/src/views/interphone/group/index.vue @@ -0,0 +1,166 @@ + + + diff --git a/web/src/views/interphone/org/OrgForm.vue b/web/src/views/interphone/org/OrgForm.vue new file mode 100644 index 0000000..3f5ffb8 --- /dev/null +++ b/web/src/views/interphone/org/OrgForm.vue @@ -0,0 +1,167 @@ + + + diff --git a/web/src/views/interphone/org/index.vue b/web/src/views/interphone/org/index.vue new file mode 100644 index 0000000..3d1c5e0 --- /dev/null +++ b/web/src/views/interphone/org/index.vue @@ -0,0 +1,160 @@ + + + diff --git a/web/src/views/interphone/terminal/TerminalForm.vue b/web/src/views/interphone/terminal/TerminalForm.vue new file mode 100644 index 0000000..aeb7e49 --- /dev/null +++ b/web/src/views/interphone/terminal/TerminalForm.vue @@ -0,0 +1,209 @@ + + + diff --git a/web/src/views/interphone/terminal/index.vue b/web/src/views/interphone/terminal/index.vue new file mode 100644 index 0000000..ffa58b6 --- /dev/null +++ b/web/src/views/interphone/terminal/index.vue @@ -0,0 +1,226 @@ + + +