From d698dd739502122fbda9c54740ab796daa4f2b78 Mon Sep 17 00:00:00 2001 From: TongTongStudio Date: Fri, 31 Jul 2026 02:14:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(device):=20=E6=96=B0=E5=A2=9E=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E8=80=85=E6=A8=A1=E5=BC=8F=E6=8C=87=E4=BB=A4=E5=8F=8A?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E8=8F=9C=E5=8D=95=E6=A0=B7=E5=BC=8F=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增推送开发者模式指令到设备的 API。 优化设备页面表格工具栏更多按钮的下拉菜单: - 点击触发并支持点击菜单项后自动隐藏 - 移除触发按钮 hover 时的背景色 - 调整下拉菜单项的布局、间距与圆角样式 --- src/api/system/developer/index.ts | 62 ++++ src/api/system/developer/types.ts | 37 ++ src/api/system/device/index.ts | 12 + src/components/DeviceSn/DevicePageContent.vue | 44 ++- src/views/devices/developer/index.vue | 340 ++++++++++++++++++ 5 files changed, 494 insertions(+), 1 deletion(-) create mode 100644 src/api/system/developer/index.ts create mode 100644 src/api/system/developer/types.ts create mode 100644 src/views/devices/developer/index.vue diff --git a/src/api/system/developer/index.ts b/src/api/system/developer/index.ts new file mode 100644 index 00000000..bb36bd03 --- /dev/null +++ b/src/api/system/developer/index.ts @@ -0,0 +1,62 @@ +import request from "@/utils/request"; +import type { DeveloperQueryParams, DeveloperForm, DeveloperItem } from "./types"; +import type { PageResult } from "@/api/common"; + +const DEVELOPER_BASE_URL = "/api/v1/developers"; + +const DeveloperAPI = { + /** 获取开发者选项分页数据 */ + getPage(queryParams?: DeveloperQueryParams) { + return request>({ + url: `${DEVELOPER_BASE_URL}`, + method: "get", + params: queryParams, + }); + }, + /** 获取开发者选项表单数据 */ + getFormData(id: string) { + return request({ + url: `${DEVELOPER_BASE_URL}/${id}/form`, + method: "get", + }); + }, + /** 新增开发者选项配置 */ + create(data: DeveloperForm) { + return request({ url: `${DEVELOPER_BASE_URL}`, method: "post", data }); + }, + /** 修改开发者选项配置 */ + update(id: string, data: DeveloperForm) { + return request({ url: `${DEVELOPER_BASE_URL}/${id}`, method: "put", data }); + }, + /** 批量删除开发者选项配置,多个以英文逗号(,)分隔 */ + deleteByIds(ids: string) { + return request({ url: `${DEVELOPER_BASE_URL}/${ids}`, method: "delete" }); + }, + /** 根据设备序列号获取开发者选项开关 */ + getBySn(sn: string) { + return request({ + url: `${DEVELOPER_BASE_URL}/sn/${sn}`, + method: "get", + }); + }, + /** 根据设备序列号保存或更新开发者选项开关 */ + saveOrUpdateBySn(sn: string, developerOptions: number) { + return request({ + url: `${DEVELOPER_BASE_URL}/sn/${sn}`, + method: "put", + params: { developerOptions }, + }); + }, + /** 推送开发者模式指令到设备 */ + pushBySn(sn: string) { + return request({ + url: `${DEVELOPER_BASE_URL}/sn/${sn}/push`, + method: "post", + }); + }, +}; + +export default DeveloperAPI; + +// 重导出类型 +export * from "./types"; diff --git a/src/api/system/developer/types.ts b/src/api/system/developer/types.ts new file mode 100644 index 00000000..808ccc88 --- /dev/null +++ b/src/api/system/developer/types.ts @@ -0,0 +1,37 @@ +/** + * Developer 设备开发者选项类型定义 + */ + +import type { BaseQueryParams } from "@/api/common"; + +/** 开发者选项分页查询参数 */ +export interface DeveloperQueryParams extends BaseQueryParams { + /** 搜索关键字(设备序列号) */ + keywords?: string; + /** 开发者选项开关(0关闭,1开启) */ + developerOptions?: number; +} + +/** 开发者选项表单对象 */ +export interface DeveloperForm { + /** 配置ID */ + id?: string; + /** 设备序列号 */ + sn?: string; + /** 开发者选项开关(0关闭,1开启) */ + developerOptions?: number; +} + +/** 开发者选项分页对象 */ +export interface DeveloperItem { + /** 配置ID */ + id: string; + /** 设备序列号 */ + sn: string; + /** 开发者选项开关(0关闭,1开启) */ + developerOptions: number; + /** 创建时间 */ + createTime?: string; + /** 更新时间 */ + updateTime?: string; +} diff --git a/src/api/system/device/index.ts b/src/api/system/device/index.ts index 619becde..5771b832 100644 --- a/src/api/system/device/index.ts +++ b/src/api/system/device/index.ts @@ -307,6 +307,18 @@ const DeviceAPI = { params: { sn }, }); }, + + /** + * 推送开发者模式指令到设备 + * @param sn 设备SN号 + */ + deviceDeveloper(sn: string) { + return request({ + url: `${DEVICE_BASE_URL}/developer`, + method: "post", + params: { sn }, + }); + }, }; export default DeviceAPI; diff --git a/src/components/DeviceSn/DevicePageContent.vue b/src/components/DeviceSn/DevicePageContent.vue index 27cec77b..3aafd8d1 100644 --- a/src/components/DeviceSn/DevicePageContent.vue +++ b/src/components/DeviceSn/DevicePageContent.vue @@ -160,11 +160,17 @@