222
CI/CD / build (push) Successful in 4m9s
Details
CI/CD / build (push) Successful in 4m9s
Details
This commit is contained in:
parent
779b6d15dd
commit
f232232351
|
|
@ -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`
|
||||
|
||||
|
|
@ -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,说明项目启动、打包命令,以及响应式布局的核心实现逻辑。
|
||||
附带 README,说明项目启动、打包命令,以及响应式布局的核心实现逻辑。
|
||||
- 项目我已经启动了,你只负责修改
|
||||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,328 @@
|
|||
<template>
|
||||
<div class="admin-agent">
|
||||
<div class="admin-agent-header">
|
||||
<h1>{{ $t('admin.agent.title') }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="admin-agent-content">
|
||||
<!-- 搜索和筛选区域 -->
|
||||
<div class="search-filter">
|
||||
<el-form :inline="true" :model="searchForm" class="search-form">
|
||||
<el-form-item :label="$t('admin.agent.agentName')">
|
||||
<el-input v-model="searchForm.agentName" :placeholder="$t('admin.agent.placeholder.agentName')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('admin.agent.xiaozhiDeviceId')">
|
||||
<el-input v-model="searchForm.xiaozhiDeviceId" :placeholder="$t('admin.agent.placeholder.xiaozhiDeviceId')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('admin.agent.macAddress')">
|
||||
<el-input v-model="searchForm.macAddress" :placeholder="$t('admin.agent.placeholder.macAddress')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('admin.agent.serialNumber')">
|
||||
<el-input v-model="searchForm.serialNumber" :placeholder="$t('admin.agent.placeholder.serialNumber')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('admin.agent.isAuth')">
|
||||
<el-select v-model="searchForm.isAuth" :placeholder="$t('admin.agent.placeholder.isAuth')" clearable style="width: 180px;">
|
||||
<el-option :label="$t('admin.agent.authStatus.all')" :value="''"></el-option>
|
||||
<el-option :label="$t('admin.agent.authStatus.unauthorized')" :value="0"></el-option>
|
||||
<el-option :label="$t('admin.agent.authStatus.authorized')" :value="1"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('admin.agent.userEmail')">
|
||||
<el-input v-model="searchForm.userEmail" :placeholder="$t('admin.agent.placeholder.userEmail')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('admin.agent.userPhone')">
|
||||
<el-input v-model="searchForm.userPhone" :placeholder="$t('admin.agent.placeholder.userPhone')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('admin.agent.userNickname')">
|
||||
<el-input v-model="searchForm.userNickname" :placeholder="$t('admin.agent.placeholder.userNickname')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleSearch">{{ $t('common.search') }}</el-button>
|
||||
<el-button @click="handleReset">{{ $t('common.reset') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<!-- 设备列表 -->
|
||||
<div class="device-list">
|
||||
<el-table :data="deviceList" stripe style="width: 100%">
|
||||
<el-table-column prop="id" :label="$t('admin.agent.deviceId')" min-width="80"></el-table-column>
|
||||
<el-table-column prop="agent_name" :label="$t('admin.agent.agentName')" min-width="120"></el-table-column>
|
||||
<el-table-column prop="xiaozhi_device_id" :label="$t('admin.agent.xiaozhiDeviceId')" min-width="150"></el-table-column>
|
||||
<el-table-column prop="mac_address" :label="$t('admin.agent.macAddress')" min-width="150"></el-table-column>
|
||||
<el-table-column prop="serial_number" :label="$t('admin.agent.serialNumber')" min-width="150"></el-table-column>
|
||||
<el-table-column prop="is_auth" :label="$t('admin.agent.isAuth')" min-width="100">
|
||||
<template #default="scope">
|
||||
<el-tag :type="scope.row.is_auth ? 'success' : 'danger'">
|
||||
{{ scope.row.is_auth ? $t('admin.agent.authStatus.authorized') : $t('admin.agent.authStatus.unauthorized') }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="user_nickname" :label="$t('admin.agent.userNickname')" min-width="120"></el-table-column>
|
||||
<el-table-column prop="created_at" :label="$t('admin.agent.createTime')" min-width="150"></el-table-column>
|
||||
<el-table-column prop="updated_at" :label="$t('admin.agent.updateTime')" min-width="150"></el-table-column>
|
||||
<el-table-column :label="$t('common.actions')" min-width="180" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button type="warning" @click="handleUnbind(scope.row)" :disabled="!scope.row.is_auth">
|
||||
{{ $t('admin.agent.unbind') }}
|
||||
</el-button>
|
||||
<el-button type="danger" @click="handleForceUnbind(scope.row)">
|
||||
{{ $t('admin.agent.forceUnbind') }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<!-- 分页 -->
|
||||
<div class="pagination">
|
||||
<el-pagination
|
||||
v-model:current-page="pagination.currentPage"
|
||||
v-model:page-size="pagination.pageSize"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="pagination.total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 解绑确认对话框 -->
|
||||
<el-dialog
|
||||
v-model="unbindDialogVisible"
|
||||
:title="$t('admin.agent.unbindConfirm')"
|
||||
width="30%"
|
||||
>
|
||||
<span>{{ $t('admin.agent.unbindConfirmMessage') }}</span>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="unbindDialogVisible = false">{{ $t('common.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="confirmUnbind">{{ $t('common.confirm') }}</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 强制解绑确认对话框 -->
|
||||
<el-dialog
|
||||
v-model="forceUnbindDialogVisible"
|
||||
:title="$t('admin.agent.forceUnbindConfirm')"
|
||||
width="30%"
|
||||
>
|
||||
<span>{{ $t('admin.agent.forceUnbindConfirmMessage') }}</span>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="forceUnbindDialogVisible = false">{{ $t('common.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="confirmForceUnbind">{{ $t('common.confirm') }}</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted, reactive } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { AdminAgent } from './index.js'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
|
||||
// 获取i18n的t函数
|
||||
const { t } = useI18n()
|
||||
|
||||
// 为了在模板中直接使用$t,将t赋值给$t
|
||||
const $t = t
|
||||
|
||||
// 初始化AdminAgent实例
|
||||
const adminAgent = new AdminAgent()
|
||||
|
||||
// 设备列表
|
||||
const deviceList = ref([])
|
||||
|
||||
// 搜索表单
|
||||
const searchForm = reactive({
|
||||
agentName: '',
|
||||
xiaozhiDeviceId: '',
|
||||
macAddress: '',
|
||||
serialNumber: '',
|
||||
isAuth: '', // 默认值为空字符串,表示全部状态
|
||||
userEmail: '',
|
||||
userPhone: '',
|
||||
userNickname: ''
|
||||
})
|
||||
|
||||
// 分页信息
|
||||
const pagination = reactive({
|
||||
currentPage: 1,
|
||||
pageSize: 20,
|
||||
total: 0
|
||||
})
|
||||
|
||||
// 解绑对话框
|
||||
const unbindDialogVisible = ref(false)
|
||||
const forceUnbindDialogVisible = ref(false)
|
||||
const currentDevice = ref(null)
|
||||
|
||||
// 获取设备列表
|
||||
const getDeviceList = async () => {
|
||||
try {
|
||||
// 过滤掉值为空的搜索参数
|
||||
const searchParams = Object.fromEntries(
|
||||
Object.entries(searchForm)
|
||||
.filter(([key, value]) => value !== '')
|
||||
)
|
||||
|
||||
const params = {
|
||||
page: pagination.currentPage,
|
||||
pageSize: pagination.pageSize,
|
||||
...searchParams
|
||||
}
|
||||
|
||||
const response = await adminAgent.deviceList(params)
|
||||
if (response.code === 0) {
|
||||
deviceList.value = response.data.items
|
||||
pagination.total = response.data.total
|
||||
} else {
|
||||
ElMessage.error(response.msg || t('admin.agent.getListFailed'))
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error(t('admin.agent.getListFailed'))
|
||||
}
|
||||
}
|
||||
|
||||
// 搜索
|
||||
const handleSearch = () => {
|
||||
pagination.currentPage = 1
|
||||
getDeviceList()
|
||||
}
|
||||
|
||||
// 重置
|
||||
const handleReset = () => {
|
||||
Object.keys(searchForm).forEach(key => {
|
||||
searchForm[key] = ''
|
||||
})
|
||||
pagination.currentPage = 1
|
||||
getDeviceList()
|
||||
}
|
||||
|
||||
// 分页大小变化
|
||||
const handleSizeChange = (size) => {
|
||||
pagination.pageSize = size
|
||||
getDeviceList()
|
||||
}
|
||||
|
||||
// 当前页变化
|
||||
const handleCurrentChange = (current) => {
|
||||
pagination.currentPage = current
|
||||
getDeviceList()
|
||||
}
|
||||
|
||||
// 解绑设备
|
||||
const handleUnbind = (device) => {
|
||||
currentDevice.value = device
|
||||
unbindDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 强制解绑设备
|
||||
const handleForceUnbind = (device) => {
|
||||
currentDevice.value = device
|
||||
forceUnbindDialogVisible.value = true
|
||||
}
|
||||
// 确认解绑
|
||||
const confirmUnbind = async () => {
|
||||
try {
|
||||
const response = await adminAgent.deviceUnbind({ device_id: currentDevice.value.id })
|
||||
if (response.code === 0) {
|
||||
ElMessage.success(t('admin.agent.unbindSuccess'))
|
||||
unbindDialogVisible.value = false
|
||||
getDeviceList()
|
||||
} else {
|
||||
ElMessage.error(response.msg || t('admin.agent.unbindFailed'))
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error(t('admin.agent.unbindFailed'))
|
||||
}
|
||||
}
|
||||
|
||||
// 确认强制解绑
|
||||
const confirmForceUnbind = async () => {
|
||||
try {
|
||||
const response = await adminAgent.deviceUnbindDevice({ device_id: currentDevice.value.id })
|
||||
if (response.code === 0) {
|
||||
ElMessage.success(t('admin.agent.forceUnbindSuccess'))
|
||||
forceUnbindDialogVisible.value = false
|
||||
getDeviceList()
|
||||
} else {
|
||||
ElMessage.error(response.msg || t('admin.agent.forceUnbindFailed'))
|
||||
}
|
||||
} catch (error) {
|
||||
ElMessage.error(t('admin.agent.forceUnbindFailed'))
|
||||
}
|
||||
}
|
||||
|
||||
// 初始加载
|
||||
onMounted(() => {
|
||||
getDeviceList()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.admin-agent {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.admin-agent-header {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.admin-agent-header h1 {
|
||||
font-size: 24px;
|
||||
margin: 0;
|
||||
color: var(--el-text-color-primary);
|
||||
}
|
||||
|
||||
.search-filter {
|
||||
background-color: #fff;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 20px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.search-form {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.device-list {
|
||||
background-color: #fff;
|
||||
border-radius: 8px;
|
||||
padding: 20px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.pagination {
|
||||
margin-top: 20px;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.admin-agent {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.search-form {
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.search-form .el-form-item {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pagination {
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -48,14 +48,10 @@
|
|||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 对话配置 -->
|
||||
<div class="form-section">
|
||||
<h3 class="section-title">{{ t('agentTemplate.dialogConfig') }}</h3>
|
||||
|
||||
<!-- 对话语言 -->
|
||||
<el-form-item :label="t('agentTemplate.language')" prop="language">
|
||||
<el-select
|
||||
|
|
@ -567,7 +563,9 @@ const availableLanguages = computed(() => {
|
|||
// 可用音色(根据当前语言过滤)
|
||||
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){
|
||||
|
|
|
|||
|
|
@ -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/, '')
|
||||
}
|
||||
|
|
|
|||
601
demo.md
601
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
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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,
|
||||
};
|
||||
|
|
@ -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==}
|
||||
|
|
|
|||
Loading…
Reference in New Issue