fix:name
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m8s

This commit is contained in:
sexygoat
2026-05-07 17:34:06 +08:00
parent 90d415cfb9
commit 78fe35da01
12 changed files with 57 additions and 755 deletions

2
.env
View File

@@ -9,7 +9,7 @@ VITE_PORT = 3006
VITE_BASE_URL =
# API 地址前缀
VITE_API_URL = https://cmp-api.boss160.cn
VITE_API_URL = https://cmp-api.xm-iot.cn
# 权限模式( frontend backend
VITE_ACCESS_MODE = backend

View File

@@ -4,7 +4,7 @@
VITE_BASE_URL = /
# API 地址前缀
VITE_API_URL = https://cmp-api.boss160.cn
VITE_API_URL = https://cmp-api.xm-iot.cn
# Delete console
VITE_DROP_CONSOLE = false

View File

@@ -1,10 +1,10 @@
# 【生产】环境变量
# 网站地址前缀
VITE_BASE_URL =
VITE_BASE_URL=
# API 地址前缀
VITE_API_URL = https://cmp-api.boss160.cn
VITE_API_URL=https://cmp-api.xm-iot.cn
# Delete console
VITE_DROP_CONSOLE = true
VITE_DROP_CONSOLE=true

View File

@@ -1,698 +0,0 @@
# 物联网管理后台 - 功能开发任务清单
## 项目概述
基于 Vue 3 + TypeScript + Element Plus 的物联网管理后台系统,管理代理商、网卡、套餐、设备等核心业务。
---
## 📦 模块划分
### 一、基础架构优化(必须先完成)
#### 1.1 API 层重构
**优先级P0最高**
- [ ] 创建统一的 API 服务基类
- [ ] 创建类型定义文件
- [ ] `src/types/api/auth.ts` - 认证相关类型
- [ ] `src/types/api/role.ts` - 角色相关类型
- [ ] `src/types/api/account.ts` - 账号相关类型
- [ ] `src/types/api/card.ts` - 网卡相关类型
- [ ] `src/types/api/package.ts` - 套餐相关类型
- [ ] `src/types/api/device.ts` - 设备相关类型
- [ ] `src/types/api/commission.ts` - 佣金相关类型
- [ ] 创建 API 服务类
- [ ] `src/api/modules/auth.ts` - AuthService
- [ ] `src/api/modules/role.ts` - RoleService
- [ ] `src/api/modules/account.ts` - AccountService
- [ ] `src/api/modules/agent.ts` - AgentService (代理商)
- [ ] `src/api/modules/card.ts` - CardService
- [ ] `src/api/modules/package.ts` - PackageService
- [ ] `src/api/modules/device.ts` - DeviceService
- [ ] `src/api/modules/commission.ts` - CommissionService
- [ ] `src/api/modules/setting.ts` - SettingService
#### 1.2 公共配置和常量提取
**优先级P0**
- [ ] 创建 `src/config/constants/` 目录
- [ ] `operators.ts` - 运营商配置
- [ ] `cardStatus.ts` - 网卡状态配置
- [ ] `userRoles.ts` - 用户角色配置
- [ ] `packageTypes.ts` - 套餐类型配置
- [ ] `deviceStatus.ts` - 设备状态配置
- [ ] `commissionStatus.ts` - 佣金状态配置
- [ ] 创建 `src/utils/business/` 目录
- [ ] `card.ts` - 网卡相关工具函数
- [ ] `package.ts` - 套餐相关工具函数
- [ ] `commission.ts` - 佣金计算工具函数
- [ ] `format.ts` - 格式化工具函数
#### 1.3 业务 Composables
**优先级P0**
- [ ] `src/composables/useCardManagement.ts` - 网卡管理
- [ ] `src/composables/usePackageManagement.ts` - 套餐管理
- [ ] `src/composables/useDeviceManagement.ts` - 设备管理
- [ ] `src/composables/useAgentManagement.ts` - 代理商管理
- [ ] `src/composables/useCommission.ts` - 佣金管理
- [ ] `src/composables/usePagination.ts` - 分页管理
- [ ] `src/composables/useTableSelection.ts` - 表格选择
#### 1.4 公共业务组件
**优先级P1**
- [ ] `src/components/business/CardStatusTag.vue` - 网卡状态标签
- [ ] `src/components/business/OperatorSelect.vue` - 运营商选择器
- [ ] `src/components/business/PackageSelector.vue` - 套餐选择器
- [ ] `src/components/business/AgentSelector.vue` - 代理商选择器
- [ ] `src/components/business/CommissionDisplay.vue` - 佣金展示组件
- [ ] `src/components/business/BatchOperationDialog.vue` - 批量操作对话框
- [ ] `src/components/business/ImportDialog.vue` - 导入对话框组件
---
## 🎯 功能模块开发
### 二、认证与权限模块
#### 2.1 登录模块
**优先级P0** **依赖1.1 API 层重构**
- [ ] 后端接口对接
- [ ] 登录接口
- [ ] 退出登录接口
- [ ] 获取用户信息接口
- [ ] 刷新 Token 接口
- [ ] 前端页面
- [ ] 完善登录页面(`src/views/auth/login/index.vue`
- [ ] 添加多角色登录支持(平台账号、代理商、企业客户)
- [ ] 添加验证码功能
- [ ] 添加记住密码功能
- [ ] 权限守卫
- [ ] 完善路由守卫逻辑
- [ ] 实现基于角色的路由过滤
- [ ] 实现按钮级权限控制
- [ ] Store 状态管理
- [ ] 完善用户 Store用户信息、权限列表
- [ ] 添加 Token 自动刷新逻辑
**Mock 数据:**
- 模拟不同角色的登录响应
- 模拟权限列表
---
### 三、账号管理模块
#### 3.1 平台角色管理
**优先级P1** **依赖1.1, 1.2, 1.3**
**子任务:**
- [ ] 类型定义
- [ ] 角色实体类型
- [ ] 角色查询参数类型
- [ ] 角色权限类型
- [ ] API 服务
- [ ] 获取角色列表
- [ ] 创建角色
- [ ] 编辑角色
- [ ] 删除角色
- [ ] 分配权限
- [ ] 页面开发
- [ ] `src/views/account-management/platform-role/index.vue`
- [ ] 角色列表(表格)
- [ ] 新增/编辑角色对话框
- [ ] 权限分配对话框(树形结构)
- [ ] 组件开发
- [ ] `PermissionTreeSelect.vue` - 权限树选择组件
- [ ] Mock 数据
- [ ] 模拟角色列表
- [ ] 模拟权限树
#### 3.2 平台账号管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取平台账号列表
- [ ] 创建平台账号
- [ ] 编辑平台账号
- [ ] 删除/禁用平台账号
- [ ] 重置密码
- [ ] 页面开发
- [ ] 账号列表(支持搜索、筛选)
- [ ] 新增/编辑账号对话框
- [ ] 角色分配
- [ ] Mock 数据
#### 3.3 客户角色管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取客户角色列表
- [ ] 创建客户角色
- [ ] 编辑客户角色
- [ ] 删除客户角色
- [ ] 设置能力边界
- [ ] 页面开发
- [ ] 角色列表
- [ ] 能力边界配置(功能权限、资源限制)
- [ ] 组件开发
- [ ] `AbilityBoundaryConfig.vue` - 能力边界配置组件
- [ ] Mock 数据
#### 3.4 代理商管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] 代理商实体类型
- [ ] 代理商层级关系类型
- [ ] API 服务
- [ ] 获取代理商列表(树形结构)
- [ ] 创建代理商
- [ ] 编辑代理商信息
- [ ] 禁用/启用代理商
- [ ] 查看代理商详情
- [ ] 获取代理商下级列表
- [ ] 页面开发
- [ ] 代理商树形列表
- [ ] 新增/编辑代理商对话框
- [ ] 代理商详情页面
- [ ] 组件开发
- [ ] `AgentTreeTable.vue` - 代理商树形表格组件
- [ ] Mock 数据
- [ ] 模拟代理商层级数据
#### 3.5 企业客户管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取企业客户列表
- [ ] 创建企业客户
- [ ] 编辑企业客户
- [ ] 禁用/启用企业客户
- [ ] 分配客户角色
- [ ] 页面开发
- [ ] `src/views/account-management/enterprise-customer/index.vue`
- [ ] 企业客户列表
- [ ] 新增/编辑企业客户对话框
- [ ] Mock 数据
#### 3.6 客户账号管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取客户账号列表(代理商+企业客户)
- [ ] 解绑手机
- [ ] 重置密码
- [ ] 禁用/启用账号
- [ ] 页面开发
- [ ] 账号列表(支持筛选)
- [ ] 账号操作(解绑、重置密码等)
- [ ] Mock 数据
---
### 四、账户管理模块
#### 4.1 客户账户(佣金查看)
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取客户账户列表
- [ ] 查看佣金详情
- [ ] 查看提现记录
- [ ] 页面开发
- [ ] 客户账户列表
- [ ] 佣金详情展示
- [ ] 提现记录列表
- [ ] 组件开发
- [ ] `CommissionDetailCard.vue` - 佣金详情卡片
- [ ] Mock 数据
#### 4.2 佣金提现管理
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取提现申请列表
- [ ] 审核提现申请(通过/拒绝)
- [ ] 查看提现详情
- [ ] 批量审核
- [ ] 页面开发
- [ ] `src/views/finance-management/commission-withdrawal/index.vue`
- [ ] 提现申请列表
- [ ] 审核对话框
- [ ] 批量审核功能
- [ ] Mock 数据
#### 4.3 佣金提现设置
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取提现设置
- [ ] 保存提现设置
- [ ] 查看历史设置
- [ ] 页面开发
- [ ] `src/views/finance-management/withdrawal-setting/index.vue`
- [ ] 提现参数配置表单
- [ ] 历史设置列表
- [ ] Mock 数据
#### 4.4 我的账户(佣金)
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取当前账号佣金数据
- [ ] 获取佣金明细
- [ ] 申请提现
- [ ] 页面开发
- [ ] 佣金概览(卡片展示,非列表)
- [ ] 佣金明细列表
- [ ] 提现申请对话框
- [ ] 组件开发
- [ ] `CommissionOverviewCard.vue` - 佣金概览卡片
- [ ] Mock 数据
---
### 五、我的设置模块
#### 5.1 收款商户设置
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取支付配置
- [ ] 保存支付配置
- [ ] 页面开发
- [ ] `src/views/my-settings/payment-merchant/index.vue`
- [ ] 支付参数配置表单
- [ ] Mock 数据
#### 5.2 开发能力管理
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取开发能力参数
- [ ] 生成 API Key
- [ ] 刷新 Secret
- [ ] 页面开发
- [ ] `src/views/my-settings/dev-capability/index.vue`
- [ ] API Key 展示和管理
- [ ] 接口文档链接
- [ ] Mock 数据
#### 5.3 分佣模板管理
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取分佣模板列表
- [ ] 创建分佣模板
- [ ] 编辑分佣模板
- [ ] 删除分佣模板
- [ ] 页面开发
- [ ] `src/views/my-settings/commission-template/index.vue`
- [ ] 模板列表
- [ ] 新增/编辑模板对话框
- [ ] 分佣规则配置
- [ ] 组件开发
- [ ] `CommissionRuleConfig.vue` - 分佣规则配置组件
- [ ] Mock 数据
---
### 六、商品管理模块
#### 6.1 号卡管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取号卡商品列表
- [ ] 新增号卡商品
- [ ] 编辑号卡商品
- [ ] 删除号卡商品
- [ ] 页面开发
- [ ] `src/views/product-management/simcard/index.vue`
- [ ] 号卡列表
- [ ] 新增/编辑号卡对话框
- [ ] Mock 数据
#### 6.2 号卡分配
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取可分配号卡列表
- [ ] 分配号卡给代理
- [ ] 设置佣金模式
- [ ] 页面开发
- [ ] `src/views/product-management/simcard-assign/index.vue`
- [ ] 号卡选择
- [ ] 代理商选择
- [ ] 佣金模式配置
- [ ] 组件开发
- [ ] `CommissionModeSelector.vue` - 佣金模式选择组件
- [ ] Mock 数据
#### 6.3 套餐系列管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取套餐系列列表
- [ ] 新增套餐系列
- [ ] 编辑套餐系列
- [ ] 删除套餐系列
- [ ] 页面开发
- [ ] `src/views/product-management/package-series/index.vue` (重命名 package-series)
- [ ] 系列列表
- [ ] 新增/编辑系列对话框
- [ ] Mock 数据
#### 6.4 套餐管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取套餐列表(根据角色过滤)
- [ ] 创建套餐
- [ ] 编辑套餐
- [ ] 删除套餐
- [ ] 页面开发
- [ ] 套餐列表(支持角色过滤)
- [ ] 新增/编辑套餐对话框
- [ ] Mock 数据
#### 6.5 套餐分配
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取可分配套餐列表
- [ ] 分配套餐给直级代理
- [ ] 设置佣金模式
- [ ] 页面开发
- [ ] 重构 `src/views/package-management/package-assign/index.vue`
- [ ] 套餐选择
- [ ] 直级代理选择
- [ ] 佣金模式配置
- [ ] Mock 数据
---
### 七、资产管理模块
#### 7.1 单卡信息查询
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 根据 ICCID 查询单卡信息
- [ ] 套餐充值
- [ ] 停复机操作
- [ ] 流量详情查询
- [ ] 更改过期时间
- [ ] 转新卡
- [ ] 停复机记录
- [ ] 往期订单
- [ ] 增减流量
- [ ] 变更钱包余额
- [ ] 充值支付密码
- [ ] 续充
- [ ] 设备操作
- [ ] 页面开发
- [ ] 单卡信息展示(描述列表)
- [ ] 操作按钮组
- [ ] 各类操作对话框
- [ ] 组件开发
- [ ] 复用 `CardOperationDialog.vue` 并扩展功能
- [ ] Mock 数据
#### 7.2 网卡管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取网卡列表
- [ ] 批量操作入口
- [ ] 页面开发
- [ ] 网卡列表
- [ ] 批量操作按钮
- [ ] Mock 数据
#### 7.3 设备管理
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取设备列表
- [ ] 查看设备卡信息
- [ ] 修改设备卡信息
- [ ] 设备相关操作
- [ ] 页面开发
- [ ] 拆分 `src/views/device-management/devices/index.vue` (2022行需拆分)
- [ ] 主页面 `index.vue`
- [ ] 设备详情组件 `DeviceDetail.vue`
- [ ] 设备操作组件 `DeviceOperation.vue`
- [ ] 设备列表
- [ ] 设备详情对话框
- [ ] 设备操作对话框
- [ ] Composables
- [ ] `useDeviceManagement.ts` - 设备管理逻辑
- [ ] Mock 数据
#### 7.4 资产分配
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 设备批量分配
- [ ] 网卡批量分配
- [ ] 页面开发
- [ ] `src/views/asset-management/asset-assign/index.vue`
- [ ] 分配方式选择(设备/网卡)
- [ ] 批量导入 ICCID
- [ ] 目标代理选择
- [ ] 组件开发
- [ ] 复用 `ImportDialog.vue`
- [ ] Mock 数据
#### 7.5 换卡申请
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 获取换卡申请列表
- [ ] 处理换卡申请
- [ ] 填充新 ICCID
- [ ] 页面开发
- [ ] 申请列表
- [ ] 处理对话框
- [ ] Mock 数据
---
### 八、批量操作模块
#### 8.1 网卡导入
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 批量导入 ICCID
- [ ] 查看导入任务状态
- [ ] 查看导入失败记录
- [ ] 页面开发
- [ ] `src/views/batch-operation/card-import/index.vue`
- [ ] Excel 导入
- [ ] 任务列表
- [ ] 失败记录查看
- [ ] 组件开发
- [ ] 复用 `ImportDialog.vue`
- [ ] Mock 数据
#### 8.2 设备导入
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 批量导入设备及 ICCID 关系
- [ ] 查看导入任务状态
- [ ] 页面开发
- [ ] `src/views/batch-operation/device-import/index.vue`
- [ ] Excel 导入
- [ ] 任务列表
- [ ] Mock 数据
#### 8.3 线下批量充值
**优先级P1**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 查看批量充值记录
- [ ] Excel 批量充值导入
- [ ] 页面开发
- [ ] 充值记录列表
- [ ] 批量充值 Excel 导入
- [ ] Mock 数据
#### 8.4 换卡通知
**优先级P2**
**子任务:**
- [ ] 类型定义
- [ ] API 服务
- [ ] 单独新建换卡通知
- [ ] 批量新建换卡通知
- [ ] 查看换卡通知记录
- [ ] 页面开发
- [ ] `src/views/batch-operation/card-change-notice/index.vue`
- [ ] 通知记录列表
- [ ] 新建通知对话框(单个/批量)
- [ ] Mock 数据
---
## 📅 开发计划建议
### 第一阶段1-2 周):基础架构
- 完成所有 1.x 任务API 层、配置、Composables、公共组件
- 完成登录模块2.1
### 第二阶段2-3 周):账号管理
- 完成账号管理模块所有功能3.1-3.6
### 第三阶段2 周):商品管理
- 完成商品管理模块6.1-6.5
### 第四阶段2-3 周):资产管理
- 完成资产管理模块7.1-7.5
### 第五阶段1-2 周):账户管理 + 我的设置
- 完成账户管理模块4.1-4.4
- 完成我的设置模块5.1-5.3
### 第六阶段1-2 周):批量操作 + 优化
- 完成批量操作模块8.1-8.4
- 性能优化、测试、Bug 修复
---
## 📌 注意事项
1. **所有模块先用 Mock 数据开发,便于前后端并行开发**
2. **严格遵循组件化原则,提高代码复用率**
3. **使用 TypeScript 严格类型,减少运行时错误**
4. **每个模块完成后进行代码审查**
5. **关键功能需要编写单元测试**
---
## 🔗 相关文档
- [项目架构文档](./openspec/project.md)
- [API 规范文档](待创建)
- [组件使用文档](待创建)

View File

@@ -3,7 +3,7 @@ git init
git checkout -b main
git add README.md
git commit -m "first commit"
git remote add origin https://git.boss160.cn/luo/one-pipe-system.git
git remote add origin https://git.boss160.cn/luo/admin-xm-iot.git
git push -u origin main
你需要注意下.gitignore 是否需要加一些文件进去

View File

@@ -225,7 +225,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -419,7 +419,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -602,7 +602,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -733,7 +733,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -863,7 +863,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []

View File

@@ -255,7 +255,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -516,7 +516,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -628,7 +628,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -868,7 +868,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []

View File

@@ -242,7 +242,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -463,7 +463,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -585,7 +585,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -698,7 +698,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -876,7 +876,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -1093,7 +1093,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -1242,7 +1242,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -1348,7 +1348,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -1631,7 +1631,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -1863,7 +1863,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -1976,7 +1976,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -2164,7 +2164,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -2407,7 +2407,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -2565,7 +2565,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -2802,7 +2802,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -3023,7 +3023,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -3145,7 +3145,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -3258,7 +3258,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -3436,7 +3436,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -3653,7 +3653,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -3785,7 +3785,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -3934,7 +3934,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -4066,7 +4066,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -4198,7 +4198,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -4425,7 +4425,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -4613,7 +4613,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -4726,7 +4726,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -4892,7 +4892,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -5089,7 +5089,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -5255,7 +5255,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -5390,7 +5390,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -5522,7 +5522,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -5644,7 +5644,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -5748,7 +5748,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -5905,7 +5905,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -6026,7 +6026,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []
@@ -6138,7 +6138,7 @@ components:
scheme: bearer
type: jwt
servers:
- url: https://cmp-api.boss160.cn
- url: https://cmp-api.xm-iot.cn
description: 测试环境
security: []

View File

@@ -1,5 +1,5 @@
{
"name": "internet-of-things-admin",
"name": "admin-xm-iot",
"version": "0.0.0",
"type": "module",
"scripts": {

BIN
src/assets/img/cover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@@ -91,7 +91,6 @@ declare module 'vue' {
ElCard: typeof import('element-plus/es')['ElCard']
ElCascader: typeof import('element-plus/es')['ElCascader']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
@@ -107,7 +106,6 @@ declare module 'vue' {
ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElMenu: typeof import('element-plus/es')['ElMenu']
@@ -117,6 +115,7 @@ declare module 'vue' {
ElPopover: typeof import('element-plus/es')['ElPopover']
ElProgress: typeof import('element-plus/es')['ElProgress']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
@@ -128,6 +127,8 @@ declare module 'vue' {
ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
ElUpload: typeof import('element-plus/es')['ElUpload']
@@ -148,7 +149,6 @@ declare module 'vue' {
SettingDrawer: typeof import('./../components/core/layouts/art-settings-panel/widget/SettingDrawer.vue')['default']
SettingHeader: typeof import('./../components/core/layouts/art-settings-panel/widget/SettingHeader.vue')['default']
SettingItem: typeof import('./../components/core/layouts/art-settings-panel/widget/SettingItem.vue')['default']
SetWiFiDialog: typeof import('./../components/device/SetWiFiDialog.vue')['default']
SidebarSubmenu: typeof import('./../components/core/layouts/art-menus/art-sidebar-menu/widget/SidebarSubmenu.vue')['default']
SpeedLimitDialog: typeof import('./../components/device/SpeedLimitDialog.vue')['default']
SwitchCardDialog: typeof import('./../components/device/SwitchCardDialog.vue')['default']

View File

@@ -7,7 +7,7 @@ import type { RequestOptions, ErrorMessageMode } from '@/types/api'
const axiosInstance = axios.create({
timeout: 15000, // 请求超时时间(毫秒)
baseURL: import.meta.env.MODE === 'development' ? '' : import.meta.env.VITE_API_URL, // API地址开发环境使用代理生产环境使用完整URL
withCredentials: true, // 异步请求携带cookie
withCredentials: false, // 异步请求携带cookie
transformRequest: [
(data, headers) => {
// 如果是 FormData,不进行转换