diff --git a/.trae/documents/开发智能体管理页面.md b/.trae/documents/开发智能体管理页面.md
new file mode 100644
index 0000000..f11883a
--- /dev/null
+++ b/.trae/documents/开发智能体管理页面.md
@@ -0,0 +1,70 @@
+## 实施计划
+
+### 1. 分析当前代码结构
+
+* **PhoneLogin.vue**:手机号登录页面主组件,包含登录卡片和子组件调用
+
+* **PhoneLoginForm.vue**:登录表单组件,包含登录方式切换和表单字段
+
+* **login.js**:包含登录相关的API调用方法,如`sendPhoneCode`和`phoneLoginCode`
+
+### 2. 修改PhoneLoginForm.vue组件
+
+#### 模板部分修改
+
+* **更新登录模式切换**:将现有的三种模式(密码登录、注册、重置密码)改为仅保留登录相关的模式
+
+* **添加密码/验证码登录切换**:在登录模式下,添加一个新的切换开关,允许用户在密码登录和验证码登录之间切换
+
+* **调整表单字段显示**:根据选择的登录方式显示相应的表单字段
+
+#### 脚本部分修改
+
+* **添加登录方式状态**:添加`loginMethod` ref,用于跟踪用户选择的是密码登录还是验证码登录
+
+* **设置默认登录方式**:将默认登录方式设置为验证码登录
+
+* **更新表单验证逻辑**:根据选择的登录方式调整验证规则
+
+* **更新发送验证码逻辑**:发送登录验证码时传递`purpose: 'login'`
+
+* **更新表单提交逻辑**:验证码登录时调用`phoneLoginCode`函数
+
+### 3. 修改PhoneLogin.vue组件
+
+* **更新handleLogin方法**:确保根据登录方式调用正确的登录函数
+
+### 4. 实施细节
+
+#### PhoneLoginForm.vue修改点
+
+* **第155行**:将默认`loginMode`改为'code'
+
+* **第38-70行**:添加密码/验证码登录切换按钮
+
+* **第256-285行**:更新`handleSendCode`方法,确保发送验证码时传递正确的purpose
+
+* **第288-316行**:更新`handleSubmit`方法,处理验证码登录逻辑
+
+#### PhoneLogin.vue修改点
+
+* **第79-81行**:更新`handleLogin`方法,根据登录方式调用正确的登录函数
+
+### 5. 预期行为
+
+* 用户默认看到验证码登录界面
+
+* 用户可以在密码登录和验证码登录之间切换
+
+* 发送登录验证码时,传递`purpose: 'login'`
+
+* 验证码登录调用`phoneLoginCode`函数
+
+* 密码登录保持原有功能不变
+
+### 6. 需要修改的文件
+
+* `d:\work\Aiproject\DeotalandAi\apps\frontend\src\components\auth\PhoneLoginForm.vue`
+
+* `d:\work\Aiproject\DeotalandAi\apps\frontend\src\views\Login\PhoneLogin.vue`
+
diff --git a/.trae/rules/project_rules.md b/.trae/rules/project_rules.md
index b8e3ef0..c228c81 100644
--- a/.trae/rules/project_rules.md
+++ b/.trae/rules/project_rules.md
@@ -1,4 +1,5 @@
如果前端项目,需要考虑以下几点:
+
1.你是一名精通 Vue3(纯 JavaScript,不使用 TypeScript)的前端开发专家,专注于构建可适配移动端、桌面端、平板端的响应式页面并且开发的页面都会基于当前项目搭建的中英文框架支持中英文切换(页面中英文切换内容都是本地的,所以需要在项目中配置好对应的英文内容),和主题色切换请基于以下要求完成开发任务:
2.技术栈规范
核心框架:使用 Vue3(Options API 或 Composition API 均可,优先推荐 Composition API 以提升代码复用性),禁止使用 TypeScript,所有逻辑用原生 JavaScript 实现。
@@ -29,8 +30,9 @@
移动端兼容 iOS 13+、Android 8+;桌面端兼容 Chrome 80+、Firefox 75+、Edge 80+;平板端覆盖主流设备(iPadOS、Android 平板)。
避免使用 ES6 + 以上高级语法(或通过 Babel 转译),确保低版本浏览器兼容性。
12.设计风格
-- 粘土拟态风格
+- 极简风格
13.交付标准
代码结构清晰,遵循 Vue3 最佳实践(如组件拆分粒度合理、逻辑与 UI 分离)。
提供完整的多端测试报告(说明在不同设备 / 尺寸下的测试结果及适配方案)。
-附带 README,说明项目启动、打包命令,以及响应式布局的核心实现逻辑。
\ No newline at end of file
+附带 README,说明项目启动、打包命令,以及响应式布局的核心实现逻辑。
+ - 项目我已经启动了,你只负责修改
\ No newline at end of file
diff --git a/apps/FrontendDesigner/src/locales/lang/en-US.js b/apps/FrontendDesigner/src/locales/lang/en-US.js
index 5db09b9..148a54b 100644
--- a/apps/FrontendDesigner/src/locales/lang/en-US.js
+++ b/apps/FrontendDesigner/src/locales/lang/en-US.js
@@ -271,6 +271,7 @@ export default {
productManagement: 'Product Management',
voucherManagement: 'Voucher Management',
operationLog: 'Operation Log',
+ adminAgent: 'Admin Agent',
logout: 'Logout',
profile: 'Profile',
settings: 'Settings'
@@ -945,6 +946,46 @@ export default {
createdAt: 'Created At',
detailTitle: 'Operation Log Detail',
getListFailed: 'Failed to get operation log list'
+ },
+ agent: {
+ title: 'Admin Agent Management',
+ deviceId: 'Device ID',
+ agentName: 'Agent Name',
+ xiaozhiDeviceId: 'Xiaozhi Device ID',
+ macAddress: 'MAC Address',
+ serialNumber: 'Serial Number',
+ isAuth: 'Auth Status',
+ userEmail: 'User Email',
+ userPhone: 'User Phone',
+ userNickname: 'User Nickname',
+ createTime: 'Create Time',
+ updateTime: 'Update Time',
+ unbind: 'Unbind',
+ forceUnbind: 'Force Unbind',
+ unbindConfirm: 'Unbind Confirm',
+ unbindConfirmMessage: 'Are you sure to unbind this device?',
+ forceUnbindConfirm: 'Force Unbind Confirm',
+ forceUnbindConfirmMessage: 'Are you sure to force unbind this device?',
+ unbindSuccess: 'Unbind successful',
+ unbindFailed: 'Unbind failed',
+ forceUnbindSuccess: 'Force unbind successful',
+ forceUnbindFailed: 'Force unbind failed',
+ getListFailed: 'Failed to get device list',
+ authStatus: {
+ all: 'All',
+ authorized: 'Authorized',
+ unauthorized: 'Unauthorized'
+ },
+ placeholder: {
+ agentName: 'Enter agent name',
+ xiaozhiDeviceId: 'Enter xiaozhi device ID',
+ macAddress: 'Enter MAC address',
+ serialNumber: 'Enter serial number',
+ isAuth: 'Select auth status',
+ userEmail: 'Enter user email',
+ userPhone: 'Enter user phone',
+ userNickname: 'Enter user nickname'
+ }
}
},
modelUpload: {
diff --git a/apps/FrontendDesigner/src/locales/lang/zh-CN.js b/apps/FrontendDesigner/src/locales/lang/zh-CN.js
index 0a966d1..50dbdde 100644
--- a/apps/FrontendDesigner/src/locales/lang/zh-CN.js
+++ b/apps/FrontendDesigner/src/locales/lang/zh-CN.js
@@ -285,6 +285,7 @@ orderManagement: {
productManagement: '产品管理',
voucherManagement: '优惠券管理',
operationLog: '操作日志',
+ adminAgent: '智能体管理',
logout: '退出登录',
profile: '个人资料',
settings: '设置',
@@ -938,6 +939,46 @@ orderManagement: {
createdAt: '创建时间',
detailTitle: '操作日志详情',
getListFailed: '获取操作日志列表失败'
+ },
+ agent: {
+ title: '智能体管理',
+ deviceId: '设备ID',
+ agentName: '智能体名称',
+ xiaozhiDeviceId: '小智设备ID',
+ macAddress: 'MAC地址',
+ serialNumber: '序列号',
+ isAuth: '授权状态',
+ userEmail: '用户邮箱',
+ userPhone: '用户电话',
+ userNickname: '用户昵称',
+ createTime: '创建时间',
+ updateTime: '更新时间',
+ unbind: '解绑',
+ forceUnbind: '强制解绑',
+ unbindConfirm: '解绑确认',
+ unbindConfirmMessage: '确定要解绑该设备吗?',
+ forceUnbindConfirm: '强制解绑确认',
+ forceUnbindConfirmMessage: '确定要强制解绑该设备吗?',
+ unbindSuccess: '解绑成功',
+ unbindFailed: '解绑失败',
+ forceUnbindSuccess: '强制解绑成功',
+ forceUnbindFailed: '强制解绑失败',
+ getListFailed: '获取设备列表失败',
+ authStatus: {
+ all: '全部',
+ authorized: '已授权',
+ unauthorized: '未授权'
+ },
+ placeholder: {
+ agentName: '请输入智能体名称',
+ xiaozhiDeviceId: '请输入小智设备ID',
+ macAddress: '请输入MAC地址',
+ serialNumber: '请输入序列号',
+ isAuth: '请选择授权状态',
+ userEmail: '请输入用户邮箱',
+ userPhone: '请输入用户电话',
+ userNickname: '请输入用户昵称'
+ }
}
},
modelUpload: {
diff --git a/apps/FrontendDesigner/src/router/index.js b/apps/FrontendDesigner/src/router/index.js
index 9fc42ff..3337f6f 100644
--- a/apps/FrontendDesigner/src/router/index.js
+++ b/apps/FrontendDesigner/src/router/index.js
@@ -25,6 +25,8 @@ const AdminPromptManagement = () => import('@/views/admin/AdminPromptManagement/
const AdminProductManagement = () => import('@/views/admin/ProductManagement/ProductManagement.vue')
const AdminVoucherManagement = () => import('@/views/admin/VoucherManagement/VoucherManagement.vue')
const AdminOperationLog = () => import('@/views/admin/AdminOperationLog/AdminOperationLog.vue')
+const AdminAgent = () => import('@/views/admin/Adminagent/index.vue')
+
//权限路由映射表
export const permissionRoutes = [
{
@@ -161,6 +163,17 @@ export const permissionRoutes = [
requiresAuth: true
}
},
+ {
+ path: 'admin-agent',
+ name: 'AdminAgent',
+ component: AdminAgent,
+ meta: {
+ title: 'admin.layout.adminAgent',
+ icon: 'User',
+ menuOrder: 9,
+ requiresAuth: true
+ }
+ },
{
path: 'permission',
diff --git a/apps/FrontendDesigner/src/views/admin/Adminagent/index.js b/apps/FrontendDesigner/src/views/admin/Adminagent/index.js
new file mode 100644
index 0000000..62667cb
--- /dev/null
+++ b/apps/FrontendDesigner/src/views/admin/Adminagent/index.js
@@ -0,0 +1,35 @@
+import { requestUtils,adminApi } from "@deotaland/utils";
+export class AdminAgent {
+ constructor() {
+ }
+ // 设备列表
+ async deviceList(data) {
+ let parmas = {
+ page: data.page,
+ page_size: data.pageSize,
+ agent_name: data.agentName,
+ xiaozhi_device_id: data.xiaozhiDeviceId,
+ mac_address: data.macAddress,
+ serial_number: data.serialNumber,
+ is_auth: data.isAuth,//0未授权1已授权
+ user_email: data.userEmail,
+ user_phone: data.userPhone,
+ user_nickname: data.userNickname,
+ }
+ return await requestUtils.common(adminApi.default.deviceList,parmas);
+ }
+ // 解绑设备,用于在小智平台解绑了,但在本地平台还没解绑的情况
+ async deviceUnbind(data) {
+ let parmas = {
+ device_id: data.device_id,
+ }
+ return await requestUtils.common(adminApi.default.deviceUnbind,parmas);
+ }
+ // 解绑设备,直接在平台解绑
+ async deviceUnbindDevice(data) {
+ let parmas = {
+ device_id: data.device_id,
+ }
+ return await requestUtils.common(adminApi.default.deviceUnbindDevice,parmas);
+ }
+}
\ No newline at end of file
diff --git a/apps/FrontendDesigner/src/views/admin/Adminagent/index.vue b/apps/FrontendDesigner/src/views/admin/Adminagent/index.vue
new file mode 100644
index 0000000..e6f86e4
--- /dev/null
+++ b/apps/FrontendDesigner/src/views/admin/Adminagent/index.vue
@@ -0,0 +1,328 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('common.search') }}
+ {{ $t('common.reset') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.is_auth ? $t('admin.agent.authStatus.authorized') : $t('admin.agent.authStatus.unauthorized') }}
+
+
+
+
+
+
+
+
+
+ {{ $t('admin.agent.unbind') }}
+
+
+ {{ $t('admin.agent.forceUnbind') }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('admin.agent.unbindConfirmMessage') }}
+
+
+
+
+
+
+
+ {{ $t('admin.agent.forceUnbindConfirmMessage') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/frontend/src/views/AddAgent.vue b/apps/frontend/src/views/AddAgent.vue
index 946f549..81c1a50 100644
--- a/apps/frontend/src/views/AddAgent.vue
+++ b/apps/frontend/src/views/AddAgent.vue
@@ -48,14 +48,10 @@
-
-
-
{{ t('agentTemplate.dialogConfig') }}
-
{
// 可用音色(根据当前语言过滤)
const availableVoices = computed(() => {
const currentLang = agentForm.language.split('-')[0] // 提取语言代码,如 'zh-CN' -> 'zh'
- return allVoices.value.filter(voice => voice.language === currentLang)
+ const list = allVoices.value.filter(voice => voice.language === currentLang&&voice.name != '湾湾小何')
+ console.log(list);
+ return list
})
// 可用模型
@@ -854,6 +852,7 @@ onMounted(async () => {
// 从路由参数获取智能体名称
const agentName = route.query.name || route.params.name || 'deo'
agentForm.name = agentName
+ agentForm.assistant_name = agentName
}
// 创建XiaozhiServer实例并调用getTtsList方法
@@ -895,7 +894,7 @@ const getTtsList = async ()=>{
if(data.code === 0){
ttsData.value = data.data
// 处理所有音色数据,转换为统一格式
- const voices = []
+ let voices = []
const ttsVoices = data.data.tts_voices || {}
// 遍历所有语言的音色
for(const lang in ttsVoices){
@@ -913,8 +912,9 @@ const getTtsList = async ()=>{
})
}
}
-
+ voices = voices.filter(voice => voice.name != '湾湾小何')
allVoices.value = voices
+ console.log(allVoices.value,'allVoices.value');
// 如果当前没有选择音色,设置默认音色
if(!agentForm.voice && voices.length > 0){
diff --git a/apps/frontend/vite.config.js b/apps/frontend/vite.config.js
index 809d0cd..915cfba 100644
--- a/apps/frontend/vite.config.js
+++ b/apps/frontend/vite.config.js
@@ -66,8 +66,8 @@ export default defineConfig({
// 配置代理解决CORS问题
proxy: {
'/api': {
- target: 'https://api.deotaland.ai',
- // target: 'http://api.deotaland.local',
+ // target: 'https://api.deotaland.ai',
+ target: 'http://api.deotaland.local',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
diff --git a/demo.md b/demo.md
index e2a7453..bc7a3d0 100644
--- a/demo.md
+++ b/demo.md
@@ -1,19 +1,592 @@
{
"code": 0,
+ "message": "",
"success": true,
"data": {
- "id": 2,
- "nickname": "suoyousheng",
- "avatarUrl": null,
- "phone": null,
- "email": "suoyousheng@gmail.com",
- "status": "active",
- "lastActive": "2025-12-11T13:52:23.226796Z",
- "inviteCode": "BTXYU6Z8",
- "invitedBy": null,
- "inviterNickname": null,
- "createdAt": null,
- "updatedAt": "2025-12-11T05:52:23.227754Z"
- },
- "message": "操作成功"
+ "items": [
+ {
+ "id": 37,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1403723,
+ "mac_address": "c8:47:8c:2d:db:bd",
+ "serial_number": "D573FFF799F8C0FC6D504069FCB5D622",
+ "is_auth": true,
+ "device_data": {
+ "id": 1403723,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-24T02:05:38.000Z",
+ "macAddress": "c8:47:8c:2d:db:bd",
+ "updated_at": "2025-12-24T02:05:38.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:2d:db:bd",
+ "serial_number": "D573FFF799F8C0FC6D504069FCB5D622",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-24T01:58:51.560441+00:00",
+ "updated_at": "2025-12-24T02:05:51.489015+00:00"
+ },
+ {
+ "id": 36,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1403580,
+ "mac_address": "c8:47:8c:63:cf:dd",
+ "serial_number": "51F90FA0D476BD4BB9BD0A13F196268A",
+ "is_auth": true,
+ "device_data": {
+ "id": 1403580,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-24T01:22:18.000Z",
+ "macAddress": "c8:47:8c:63:cf:dd",
+ "updated_at": "2025-12-24T01:22:18.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:63:cf:dd",
+ "serial_number": "51F90FA0D476BD4BB9BD0A13F196268A",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-24T01:22:15.787045+00:00",
+ "updated_at": "2025-12-24T01:44:55.214833+00:00"
+ },
+ {
+ "id": 35,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401628,
+ "mac_address": "c8:47:8c:7b:39:a5",
+ "serial_number": "698C9C12D7E028E6D4A708E500095CF2",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401628,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:35:14.000Z",
+ "macAddress": "c8:47:8c:7b:39:a5",
+ "updated_at": "2025-12-23T09:35:14.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:7b:39:a5",
+ "serial_number": "698C9C12D7E028E6D4A708E500095CF2",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:35:12.413827+00:00",
+ "updated_at": "2025-12-24T01:08:32.483676+00:00"
+ },
+ {
+ "id": 34,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401623,
+ "mac_address": "c8:47:8c:53:73:f2",
+ "serial_number": "980AD543279040C4534E0379E60D53EB",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401623,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:34:07.000Z",
+ "macAddress": "c8:47:8c:53:73:f2",
+ "updated_at": "2025-12-23T09:34:07.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:53:73:f2",
+ "serial_number": "980AD543279040C4534E0379E60D53EB",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:34:05.593979+00:00",
+ "updated_at": "2025-12-23T09:35:03.700268+00:00"
+ },
+ {
+ "id": 33,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401615,
+ "mac_address": "c8:47:8c:b8:f2:83",
+ "serial_number": "F9C373E779B4352CBE2CD44AB3A50AFD",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401615,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:33:17.000Z",
+ "macAddress": "c8:47:8c:b8:f2:83",
+ "updated_at": "2025-12-23T09:33:17.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:b8:f2:83",
+ "serial_number": "F9C373E779B4352CBE2CD44AB3A50AFD",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:33:15.074071+00:00",
+ "updated_at": "2025-12-23T09:33:55.751273+00:00"
+ },
+ {
+ "id": 32,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401605,
+ "mac_address": "c8:47:8c:39:19:31",
+ "serial_number": "2CDA9874D76C3C94A1D9DC54096F2208",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401605,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:32:22.000Z",
+ "macAddress": "c8:47:8c:39:19:31",
+ "updated_at": "2025-12-23T09:32:22.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:39:19:31",
+ "serial_number": "2CDA9874D76C3C94A1D9DC54096F2208",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:32:20.347740+00:00",
+ "updated_at": "2025-12-23T09:33:05.661537+00:00"
+ },
+ {
+ "id": 31,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401598,
+ "mac_address": "c8:47:8c:24:d8:13",
+ "serial_number": "D87F933C24C71405B8CC8AB5D9412159",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401598,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:31:31.000Z",
+ "macAddress": "c8:47:8c:24:d8:13",
+ "updated_at": "2025-12-23T09:31:31.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:24:d8:13",
+ "serial_number": "D87F933C24C71405B8CC8AB5D9412159",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:31:29.850426+00:00",
+ "updated_at": "2025-12-23T09:31:48.670695+00:00"
+ },
+ {
+ "id": 30,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401585,
+ "mac_address": "c8:47:8c:f4:1a:64",
+ "serial_number": "E454746E3B854FD75DE638FF8CF75286",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401585,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:30:09.000Z",
+ "macAddress": "c8:47:8c:f4:1a:64",
+ "updated_at": "2025-12-23T09:30:09.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:f4:1a:64",
+ "serial_number": "E454746E3B854FD75DE638FF8CF75286",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:30:07.416068+00:00",
+ "updated_at": "2025-12-23T09:30:25.870478+00:00"
+ },
+ {
+ "id": 29,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401579,
+ "mac_address": "c8:47:8c:b9:23:75",
+ "serial_number": "C1971774FE930B2AC5AC0890B904FC87",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401579,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:28:56.000Z",
+ "macAddress": "c8:47:8c:b9:23:75",
+ "updated_at": "2025-12-23T09:28:56.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:b9:23:75",
+ "serial_number": "C1971774FE930B2AC5AC0890B904FC87",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:28:54.061646+00:00",
+ "updated_at": "2025-12-23T09:29:09.621515+00:00"
+ },
+ {
+ "id": 28,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401570,
+ "mac_address": "c8:47:8c:15:2a:70",
+ "serial_number": "DD4755E697A3B342562E975278C84014",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401570,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:27:51.000Z",
+ "macAddress": "c8:47:8c:15:2a:70",
+ "updated_at": "2025-12-23T09:27:51.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:15:2a:70",
+ "serial_number": "DD4755E697A3B342562E975278C84014",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:27:49.669610+00:00",
+ "updated_at": "2025-12-23T09:28:39.300155+00:00"
+ },
+ {
+ "id": 27,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401568,
+ "mac_address": "c8:47:8c:14:96:e4",
+ "serial_number": "3460E5FAA64F8BD32A97AD09BC6EF318",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401568,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:26:40.000Z",
+ "macAddress": "c8:47:8c:14:96:e4",
+ "updated_at": "2025-12-23T09:26:40.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:14:96:e4",
+ "serial_number": "3460E5FAA64F8BD32A97AD09BC6EF318",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:26:38.333116+00:00",
+ "updated_at": "2025-12-23T09:26:57.920852+00:00"
+ },
+ {
+ "id": 26,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401559,
+ "mac_address": "c8:47:8c:fd:a9:a7",
+ "serial_number": "1B926A2CFF32A518A291152EB214C125",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401559,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:23:50.000Z",
+ "macAddress": "c8:47:8c:fd:a9:a7",
+ "updated_at": "2025-12-23T09:23:50.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:fd:a9:a7",
+ "serial_number": "1B926A2CFF32A518A291152EB214C125",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:23:48.364367+00:00",
+ "updated_at": "2025-12-23T09:24:06.861291+00:00"
+ },
+ {
+ "id": 25,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401542,
+ "mac_address": "c8:47:8c:c5:bf:e0",
+ "serial_number": "BD6629490895D608A5DEA0151BB7D289",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401542,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:20:44.000Z",
+ "macAddress": "c8:47:8c:c5:bf:e0",
+ "updated_at": "2025-12-23T09:20:44.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:c5:bf:e0",
+ "serial_number": "BD6629490895D608A5DEA0151BB7D289",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:20:42.340747+00:00",
+ "updated_at": "2025-12-23T09:20:59.293540+00:00"
+ },
+ {
+ "id": 24,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401533,
+ "mac_address": "c8:47:8c:15:a1:f0",
+ "serial_number": "5F8DEEC65580DB5E53FAB6F0FB8BCBFD",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401533,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:19:27.000Z",
+ "macAddress": "c8:47:8c:15:a1:f0",
+ "updated_at": "2025-12-23T09:19:27.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:15:a1:f0",
+ "serial_number": "5F8DEEC65580DB5E53FAB6F0FB8BCBFD",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:19:25.121039+00:00",
+ "updated_at": "2025-12-23T09:20:34.002488+00:00"
+ },
+ {
+ "id": 23,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401523,
+ "mac_address": "c8:47:8c:ce:db:23",
+ "serial_number": "37EE129E77BDFE62749FBE8C71593EEF",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401523,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:18:07.000Z",
+ "macAddress": "c8:47:8c:ce:db:23",
+ "updated_at": "2025-12-23T09:18:07.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:ce:db:23",
+ "serial_number": "37EE129E77BDFE62749FBE8C71593EEF",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:18:05.646345+00:00",
+ "updated_at": "2025-12-23T09:18:35.541568+00:00"
+ },
+ {
+ "id": 22,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401511,
+ "mac_address": "c8:47:8c:f6:a2:ab",
+ "serial_number": "0DC2E3342A02589FBF29BC90101F89C5",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401511,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:16:44.000Z",
+ "macAddress": "c8:47:8c:f6:a2:ab",
+ "updated_at": "2025-12-23T09:16:44.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:f6:a2:ab",
+ "serial_number": "0DC2E3342A02589FBF29BC90101F89C5",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:16:42.818711+00:00",
+ "updated_at": "2025-12-23T09:17:03.807210+00:00"
+ },
+ {
+ "id": 21,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401498,
+ "mac_address": "c8:47:8c:cd:f7:a9",
+ "serial_number": "DE2F4FCB0ED991A3CAB2729C1BE5F6CC",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401498,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:15:27.000Z",
+ "macAddress": "c8:47:8c:cd:f7:a9",
+ "updated_at": "2025-12-23T09:15:27.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:cd:f7:a9",
+ "serial_number": "DE2F4FCB0ED991A3CAB2729C1BE5F6CC",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:15:25.683187+00:00",
+ "updated_at": "2025-12-23T09:15:39.779258+00:00"
+ },
+ {
+ "id": 20,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401491,
+ "mac_address": "c8:47:8c:c9:f2:98",
+ "serial_number": "546EE384367AAB209F067296F2F72E00",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401491,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:14:11.000Z",
+ "macAddress": "c8:47:8c:c9:f2:98",
+ "updated_at": "2025-12-23T09:14:11.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:c9:f2:98",
+ "serial_number": "546EE384367AAB209F067296F2F72E00",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:14:09.762809+00:00",
+ "updated_at": "2025-12-23T09:14:26.434891+00:00"
+ },
+ {
+ "id": 19,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401480,
+ "mac_address": "c8:47:8c:4b:15:91",
+ "serial_number": "CA144DA49F912C4B0173C80155F300B7",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401480,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:12:58.000Z",
+ "macAddress": "c8:47:8c:4b:15:91",
+ "updated_at": "2025-12-23T09:12:58.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:4b:15:91",
+ "serial_number": "CA144DA49F912C4B0173C80155F300B7",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:12:56.616617+00:00",
+ "updated_at": "2025-12-23T09:13:14.601850+00:00"
+ },
+ {
+ "id": 18,
+ "agent_id": null,
+ "agent_name": null,
+ "xiaozhi_device_id": 1401474,
+ "mac_address": "c8:47:8c:77:e2:70",
+ "serial_number": "5DE0EF7D5E0B63B441429E0C35E9C136",
+ "is_auth": true,
+ "device_data": {
+ "id": 1401474,
+ "alias": null,
+ "iccid": "",
+ "is_auth": true,
+ "user_id": 677673,
+ "agent_id": 1223893,
+ "board_name": "deotaland-d-1",
+ "created_at": "2025-12-23T09:11:40.000Z",
+ "macAddress": "c8:47:8c:77:e2:70",
+ "updated_at": "2025-12-23T09:11:40.000Z",
+ "app_version": "1.4.0",
+ "auto_update": 1,
+ "mac_address": "c8:47:8c:77:e2:70",
+ "serial_number": "5DE0EF7D5E0B63B441429E0C35E9C136",
+ "last_connected_at": null
+ },
+ "user_nickname": null,
+ "created_at": "2025-12-23T09:11:38.069967+00:00",
+ "updated_at": "2025-12-23T09:12:04.062386+00:00"
+ }
+ ],
+ "page": 1,
+ "page_size": 20,
+ "total": 32
+ }
}
\ No newline at end of file
diff --git a/packages/utils/src/api/FrontendDesigner/agent.js b/packages/utils/src/api/FrontendDesigner/agent.js
new file mode 100644
index 0000000..1b0f424
--- /dev/null
+++ b/packages/utils/src/api/FrontendDesigner/agent.js
@@ -0,0 +1,6 @@
+const login = {
+ deviceList:{url:'/api-core/admin/device/list',method:'GET'},// 设备列表
+ deviceUnbind:{url:'/api-core/admin/device/unbind',method:'POST'},// 解绑设备,用于在小智平台解绑了,但在本地平台还没解绑的情况
+ deviceUnbindDevice:{url:'/api-core/admin/device/unbind-device',method:'POST'},// 解绑设备,直接在平台解绑
+}
+export default login;
diff --git a/packages/utils/src/api/FrontendDesigner/index.js b/packages/utils/src/api/FrontendDesigner/index.js
index e5c5b95..4429a37 100644
--- a/packages/utils/src/api/FrontendDesigner/index.js
+++ b/packages/utils/src/api/FrontendDesigner/index.js
@@ -10,6 +10,7 @@ import pointsManagement from './pointsManagement.js';
import configuration from './configuration.js';
import seriespriceConfig from './seriespriceConfig.js';
import voucher from './voucher.js';
+import agent from './agent.js';
export default {
...login,
@@ -24,4 +25,5 @@ export default {
...configuration,
...seriespriceConfig,
...voucher,
+ ...agent,
};
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6d912d6..6fe359b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,12 +8,21 @@ importers:
.:
devDependencies:
+ '@element-plus/icons-vue':
+ specifier: ^2.3.2
+ version: 2.3.2(vue@3.5.24)
+ '@google/genai':
+ specifier: ^1.27.0
+ version: 1.27.0
'@vitejs/plugin-vue':
specifier: ^6.0.1
version: 6.0.1(vite@7.2.2)(vue@3.5.24)
concurrently:
specifier: ^8.2.0
version: 8.2.0
+ element-plus:
+ specifier: ^2.11.7
+ version: 2.12.0(vue@3.5.24)
eslint:
specifier: ^8.45.0
version: 8.45.0
@@ -324,7 +333,6 @@ packages:
/@ctrl/tinycolor@3.6.1:
resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
engines: {node: '>=10'}
- dev: false
/@dimforge/rapier3d-compat@0.12.0:
resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==}
@@ -336,7 +344,6 @@ packages:
vue: ^3.2.0
dependencies:
vue: 3.5.24
- dev: false
/@esbuild/aix-ppc64@0.25.12:
resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
@@ -683,18 +690,15 @@ packages:
resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
dependencies:
'@floating-ui/utils': 0.2.10
- dev: false
/@floating-ui/dom@1.7.4:
resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==}
dependencies:
'@floating-ui/core': 1.7.3
'@floating-ui/utils': 0.2.10
- dev: false
/@floating-ui/utils@0.2.10:
resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
- dev: false
/@google/genai@1.27.0:
resolution: {integrity: sha512-sveeQqwyzO/U5kOjo3EflF1rf7v0ZGprrjPGmeT6V5u22IUTcA4wBFxW+q1n7hOX0M1iWR3944MImoNPOM+zsA==}
@@ -711,7 +715,6 @@ packages:
- bufferutil
- supports-color
- utf-8-validate
- dev: false
/@humanfs/core@0.19.1:
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
@@ -1100,7 +1103,6 @@ packages:
/@sxzz/popperjs-es@2.11.7:
resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
- dev: false
/@tailwindcss/node@4.1.17:
resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==}
@@ -1315,11 +1317,9 @@ packages:
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
dependencies:
'@types/lodash': 4.17.20
- dev: false
/@types/lodash@4.17.20:
resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
- dev: false
/@types/stats.js@0.17.4:
resolution: {integrity: sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==}
@@ -1339,7 +1339,6 @@ packages:
/@types/web-bluetooth@0.0.16:
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
- dev: false
/@types/web-bluetooth@0.0.21:
resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
@@ -1499,14 +1498,12 @@ packages:
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- dev: false
/@vueuse/metadata@14.1.0:
resolution: {integrity: sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==}
/@vueuse/metadata@9.13.0:
resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
- dev: false
/@vueuse/shared@14.1.0(vue@3.5.24):
resolution: {integrity: sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==}
@@ -1522,7 +1519,6 @@ packages:
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- dev: false
/@webgpu/types@0.1.66:
resolution: {integrity: sha512-YA2hLrwLpDsRueNDXIMqN9NTzD6bCDkuXbOSe0heS+f8YE8usA6Gbv1prj81pzVHrbaAma7zObnIC+I6/sXJgA==}
@@ -1545,7 +1541,6 @@ packages:
/agent-base@7.1.4:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
- dev: false
/ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -1580,7 +1575,6 @@ packages:
/async-validator@4.2.5:
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
- dev: false
/asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
@@ -1617,7 +1611,6 @@ packages:
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
- dev: false
/baseline-browser-mapping@2.9.4:
resolution: {integrity: sha512-ZCQ9GEWl73BVm8bu5Fts8nt7MHdbt5vY9bP6WGnUh+r3l8M7CgfyTlwsgCbMC66BNxPr6Xoce3j66Ms5YUQTNA==}
@@ -1626,7 +1619,6 @@ packages:
/bignumber.js@9.3.1:
resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
- dev: false
/birpc@2.8.0:
resolution: {integrity: sha512-Bz2a4qD/5GRhiHSwj30c/8kC8QGj12nNDwz3D4ErQ4Xhy35dsSDvF+RA/tWpjyU0pdGtSDiEk6B5fBGE1qNVhw==}
@@ -1662,7 +1654,6 @@ packages:
/buffer-equal-constant-time@1.0.1:
resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
- dev: false
/buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -1807,7 +1798,6 @@ packages:
/data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
- dev: false
/date-fns@2.30.0:
resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
@@ -1822,7 +1812,6 @@ packages:
/dayjs@1.11.19:
resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==}
- dev: false
/debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
@@ -1903,7 +1892,6 @@ packages:
resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
dependencies:
safe-buffer: 5.2.1
- dev: false
/electron-to-chromium@1.5.266:
resolution: {integrity: sha512-kgWEglXvkEfMH7rxP5OSZZwnaDWT7J9EoZCujhnpLbfi0bbNtRkgdX2E3gt0Uer11c61qCYktB3hwkAS325sJg==}
@@ -1955,7 +1943,6 @@ packages:
vue: 3.5.24
transitivePeerDependencies:
- '@vue/composition-api'
- dev: false
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -2252,7 +2239,6 @@ packages:
/extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
- dev: false
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -2297,7 +2283,6 @@ packages:
dependencies:
node-domexception: 1.0.0
web-streams-polyfill: 3.3.3
- dev: false
/fflate@0.8.2:
resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
@@ -2379,7 +2364,6 @@ packages:
engines: {node: '>=12.20.0'}
dependencies:
fetch-blob: 3.2.0
- dev: false
/fraction.js@5.3.4:
resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
@@ -2430,7 +2414,6 @@ packages:
rimraf: 5.0.10
transitivePeerDependencies:
- supports-color
- dev: false
/gcp-metadata@8.1.2:
resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==}
@@ -2441,7 +2424,6 @@ packages:
json-bigint: 1.0.0
transitivePeerDependencies:
- supports-color
- dev: false
/get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
@@ -2532,12 +2514,10 @@ packages:
jws: 4.0.0
transitivePeerDependencies:
- supports-color
- dev: false
/google-logging-utils@1.1.3:
resolution: {integrity: sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==}
engines: {node: '>=14'}
- dev: false
/gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
@@ -2560,7 +2540,6 @@ packages:
jws: 4.0.0
transitivePeerDependencies:
- supports-color
- dev: false
/has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
@@ -2611,7 +2590,6 @@ packages:
debug: 4.4.3
transitivePeerDependencies:
- supports-color
- dev: false
/ignore@5.3.2:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
@@ -2715,7 +2693,6 @@ packages:
resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==}
dependencies:
bignumber.js: 9.3.1
- dev: false
/json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
@@ -2744,14 +2721,12 @@ packages:
buffer-equal-constant-time: 1.0.1
ecdsa-sig-formatter: 1.0.11
safe-buffer: 5.2.1
- dev: false
/jws@4.0.0:
resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==}
dependencies:
jwa: 2.0.1
safe-buffer: 5.2.1
- dev: false
/keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@@ -2921,7 +2896,6 @@ packages:
/lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
- dev: false
/lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
@@ -2933,7 +2907,6 @@ packages:
'@types/lodash-es': 4.17.12
lodash: 4.17.21
lodash-es: 4.17.21
- dev: false
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
@@ -2957,7 +2930,6 @@ packages:
/memoize-one@6.0.0:
resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
- dev: false
/meshoptimizer@0.22.0:
resolution: {integrity: sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==}
@@ -3056,7 +3028,6 @@ packages:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
deprecated: Use your platform's native DOMException instead
- dev: false
/node-fetch@3.3.2:
resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
@@ -3065,7 +3036,6 @@ packages:
data-uri-to-buffer: 4.0.1
fetch-blob: 3.2.0
formdata-polyfill: 4.0.10
- dev: false
/node-releases@2.0.27:
resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
@@ -3078,7 +3048,6 @@ packages:
/normalize-wheel-es@1.2.0:
resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
- dev: false
/normalize.css@8.0.1:
resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==}
@@ -3365,7 +3334,6 @@ packages:
hasBin: true
dependencies:
glob: 10.5.0
- dev: false
/rollup@4.53.2:
resolution: {integrity: sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==}
@@ -3417,7 +3385,6 @@ packages:
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- dev: false
/scule@1.3.0:
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
@@ -3961,7 +3928,6 @@ packages:
optional: true
dependencies:
vue: 3.5.24
- dev: false
/vue-eslint-parser@9.4.3(eslint@9.15.0):
resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==}
@@ -4091,7 +4057,6 @@ packages:
/web-streams-polyfill@3.3.3:
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
engines: {node: '>= 8'}
- dev: false
/webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
@@ -4140,7 +4105,6 @@ packages:
optional: true
utf-8-validate:
optional: true
- dev: false
/xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}