Files
as-partner-frontend/src/api/manage/device.ts
2026-07-26 12:54:46 +08:00

118 lines
3.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import http from '@/utils/httpRequest'
import type { ManageListResponse, ManageResponse, ManagePageParams } from './types'
/**
* 终端/设备信息
*/
export interface DeviceInfo {
id: number
storeOrgId: number
mac: string
deviceSn: string
wifiMac?: string
deviceUid?: string
androidId?: string
manufacturer?: string
model?: string
brand?: string
identifierStrategy?: string
deviceName: string
deviceModel: string
verCode?: string
verName?: string
androidVersion?: string
roomNo: string
lastHeartbeat?: string
remark: string
status: string
createdAt: string
updatedAt: string
/** 非表字段,后端 join 返回 */
storeName?: string
channelOrgId?: number
channelName?: string
agentOrgName?: string
/** 设备来源:PLATFORM-平台 / PARTNER-第三方接口注册 */
source?: string
/** 合作伙伴UUID(source=PARTNER 时) */
partnerId?: string
}
/**
* 终端列表查询参数
*/
export interface DeviceListParams extends ManagePageParams {
storeOrgId?: number
status?: string
deviceName?: string
mac?: string
/** 设备来源:PLATFORM / PARTNER */
source?: string
/** 合作伙伴UUID(source=PARTNER 时筛选) */
partnerId?: string
}
/**
* 终端保存/更新数据
*/
export interface DeviceSaveData {
id?: number
storeOrgId: number
mac?: string
wifiMac?: string
deviceUid?: string
deviceSn?: string
deviceName?: string
deviceModel?: string
roomNo?: string
remark?: string
}
/** 终端分页列表 */
export function getDeviceList(params?: DeviceListParams): Promise<ManageListResponse<DeviceInfo>> {
return http.get(http.adornUrl('/manage/device/list'), { params: http.adornParams(params || {}) }).then(res => res.data)
}
/** 终端详情 */
export function getDeviceInfo(id: number): Promise<ManageResponse<{ device?: DeviceInfo }>> {
return http.get(http.adornUrl(`/manage/device/info/${id}`), { params: http.adornParams() }).then(res => res.data)
}
/** 新增/修改终端 */
export function saveOrUpdateDevice(data: DeviceSaveData): Promise<ManageResponse> {
const url = data.id ? '/manage/device/update' : '/manage/device/save'
return http.post(http.adornUrl(url), http.adornData(data)).then(res => res.data)
}
/** 删除终端(批量软删除) */
export function deleteDevice(ids: number[]): Promise<ManageResponse> {
return http.post(http.adornUrl('/manage/device/delete'), http.adornData(ids, false)).then(res => res.data)
}
/** 绑定门店(query 参数传 deviceId 和 storeOrgId) */
export function bindDeviceStore(deviceId: number, storeOrgId: number): Promise<ManageResponse> {
return http.post(
http.adornUrl('/manage/device/bindStore'),
http.adornData({}),
{ params: http.adornParams({ deviceId, storeOrgId }) }
).then(res => res.data)
}
/** 解绑设备(换场所):清门店关联 + 作废 sign + 释放天卡权益 */
export function unbindDeviceOrg(deviceId: number): Promise<ManageResponse> {
return http.post(
http.adornUrl('/manage/daycard/device/unbind-org'),
http.adornData({}),
{ params: http.adornParams({ deviceId }) }
).then(res => res.data)
}
/** 退天卡:仅退卡,不解绑门店 */
export function unbindDayCard(deviceId: number): Promise<ManageResponse> {
return http.post(
http.adornUrl('/manage/daycard/device/unbind'),
http.adornData({}),
{ params: http.adornParams({ deviceId }) }
).then(res => res.data)
}