diff --git a/DEVICE_MANAGEMENT_IMPROVEMENTS.md b/DEVICE_MANAGEMENT_IMPROVEMENTS.md new file mode 100644 index 0000000..c4121a3 --- /dev/null +++ b/DEVICE_MANAGEMENT_IMPROVEMENTS.md @@ -0,0 +1,147 @@ +# 设备中心模块问题修复和改进总结 + +## 发现的问题 + +### 1. 弹窗组件问题 +- **缺少查看模式**:原弹窗组件没有区分查看、编辑、新增模式 +- **表单验证不完善**:缺少详细的验证规则和错误处理 +- **缺少加载状态**:提交时没有loading状态管理 +- **表单重置逻辑不完善**:取消时没有正确重置表单 +- **缺少调试功能**:开发环境下缺少调试工具 + +### 2. 主页面问题 +- **数据转换逻辑复杂**:存在过多的兼容性处理,可能导致数据不一致 +- **错误处理不够详细**:错误信息不够具体 +- **缺少详情页面跳转**:没有设备详情页面的入口 +- **对象引用问题**:直接传递对象引用可能导致数据污染 + +### 3. 功能缺失 +- **缺少设备详情页面**:没有专门的设备详情展示页面 +- **缺少维护记录管理**:没有设备维护记录的展示和管理 +- **缺少使用记录**:没有设备使用历史的展示 +- **缺少文件管理**:没有设备相关文件的管理功能 + +## 修复和改进内容 + +### 1. 弹窗组件优化 (`DeviceModal.vue`) + +#### 新增功能 +- ✅ **查看模式支持**:添加了查看模式,禁用所有输入框 +- ✅ **完善的表单验证**:添加了详细的验证规则和长度限制 +- ✅ **加载状态管理**:添加了提交时的loading状态 +- ✅ **表单重置优化**:完善了表单重置逻辑 +- ✅ **调试功能**:开发环境下添加了调试按钮 +- ✅ **错误处理优化**:更详细的错误信息处理 + +#### 技术改进 +- ✅ **响应式表单数据**:使用reactive管理表单数据 +- ✅ **计算属性优化**:添加了表单有效性计算 +- ✅ **监听器优化**:优化了数据变化监听逻辑 +- ✅ **类型安全**:完善了TypeScript类型定义 + +### 2. 主页面优化 (`index.vue`) + +#### 功能改进 +- ✅ **数据转换优化**:简化了数据转换逻辑,提高一致性 +- ✅ **错误处理增强**:添加了更详细的错误信息处理 +- ✅ **详情页面跳转**:添加了设备详情页面的跳转功能 +- ✅ **对象深拷贝**:使用展开运算符避免对象引用问题 + +#### 用户体验改进 +- ✅ **删除确认优化**:添加了更明确的删除确认提示 +- ✅ **操作反馈优化**:改进了操作成功/失败的提示信息 + +### 3. 新增设备详情页面 (`detail.vue`) + +#### 功能特性 +- ✅ **基本信息展示**:设备的基本信息展示 +- ✅ **状态信息展示**:设备的各种状态信息 +- ✅ **维护记录管理**:设备维护记录的展示和管理 +- ✅ **使用记录展示**:设备使用历史的展示 +- ✅ **位置变更记录**:设备位置变更历史 +- ✅ **文件管理**:设备相关文件的上传和管理 + +#### 技术实现 +- ✅ **响应式数据管理**:使用ref管理页面数据 +- ✅ **路由参数处理**:正确处理路由参数获取设备ID +- ✅ **API集成**:集成设备详情API +- ✅ **状态文本转换**:统一的状态文本转换函数 + +### 4. 路由配置优化 + +#### 新增路由 +- ✅ **设备详情路由**:添加了设备详情页面的路由配置 +- ✅ **参数传递**:支持通过URL参数传递设备ID + +## 参考training模块的实现 + +### 借鉴的设计模式 +1. **弹窗组件设计**:参考了TrainingPlanModal的弹窗设计模式 +2. **表单验证机制**:采用了相同的表单验证和错误处理机制 +3. **数据管理方式**:使用了相同的响应式数据管理方式 +4. **调试功能**:借鉴了开发环境下的调试工具设计 +5. **详情页面设计**:参考了TrainingDetail页面的布局和功能设计 + +### 技术实现对比 +| 功能 | Training模块 | 设备管理模块 | 改进状态 | +|------|-------------|-------------|----------| +| 弹窗模式 | 查看/编辑/新增 | 查看/编辑/新增 | ✅ 已实现 | +| 表单验证 | 完善 | 完善 | ✅ 已实现 | +| 加载状态 | 有 | 有 | ✅ 已实现 | +| 调试功能 | 有 | 有 | ✅ 已实现 | +| 详情页面 | 有 | 有 | ✅ 已实现 | +| 错误处理 | 详细 | 详细 | ✅ 已实现 | + +## 使用说明 + +### 1. 设备列表页面 +- **搜索功能**:支持按设备名称、类型、状态等条件搜索 +- **新增设备**:点击"新增设备"按钮打开新增弹窗 +- **查看设备**:点击"查看"按钮以只读模式查看设备信息 +- **编辑设备**:点击"编辑"按钮修改设备信息 +- **详情页面**:点击"详情"按钮跳转到设备详情页面 +- **设备操作**:支持分配、归还、删除等操作 + +### 2. 设备详情页面 +- **基本信息**:展示设备的基本信息 +- **状态信息**:展示设备的各种状态 +- **维护记录**:查看和管理设备维护记录 +- **使用记录**:查看设备使用历史 +- **位置变更**:查看设备位置变更历史 +- **文件管理**:上传和管理设备相关文件 + +### 3. 开发调试 +- **调试按钮**:开发环境下显示调试按钮 +- **表单测试**:可以测试表单数据绑定 +- **测试数据**:可以填充测试数据 +- **数据清空**:可以清空表单数据 + +## 后续优化建议 + +### 1. 功能扩展 +- [ ] 添加设备维护记录的增删改功能 +- [ ] 实现设备使用记录的实时更新 +- [ ] 添加设备状态变更的审批流程 +- [ ] 实现设备文件的在线预览功能 + +### 2. 性能优化 +- [ ] 添加数据缓存机制 +- [ ] 实现分页加载优化 +- [ ] 添加数据预加载功能 + +### 3. 用户体验 +- [ ] 添加操作确认的快捷键支持 +- [ ] 实现批量操作功能 +- [ ] 添加数据导出功能 +- [ ] 实现高级搜索功能 + +## 总结 + +通过参考training模块的实现,成功修复了设备中心模块的主要问题,并添加了缺失的功能。主要改进包括: + +1. **弹窗组件**:完善了查看、编辑、新增模式,添加了完善的表单验证和错误处理 +2. **主页面**:优化了数据转换逻辑,改进了错误处理,添加了详情页面跳转 +3. **详情页面**:新增了完整的设备详情展示页面,包含维护记录、使用记录等功能 +4. **路由配置**:添加了设备详情页面的路由配置 + +这些改进大大提升了设备中心模块的功能完整性和用户体验,使其与training模块保持了一致的设计标准和实现质量。 \ No newline at end of file diff --git a/config/plugins/app-info.ts b/config/plugins/app-info.ts index 575b427..d8a321f 100644 --- a/config/plugins/app-info.ts +++ b/config/plugins/app-info.ts @@ -8,7 +8,7 @@ export default function appInfo(): Plugin { apply: 'serve', async buildStart() { const { bold, green, cyan, bgGreen, underline } = picocolors - // eslint-disable-next-line no-console + console.log( boxen( `${bold(green(`${bgGreen('ContiNew Admin v4.0.0-SNAPSHOT')}`))}\n${cyan('在线文档:')}${underline('https://continew.top')}\n${cyan('常见问题:')}${underline('https://continew.top/admin/faq.html')}\n${cyan('持续迭代优化的前后端分离中后台管理系统框架。')}`, diff --git a/src/apis/attach-info/index.ts b/src/apis/attach-info/index.ts index e3a7390..fd5cc5b 100644 --- a/src/apis/attach-info/index.ts +++ b/src/apis/attach-info/index.ts @@ -1,6 +1,7 @@ -import http from '@/utils/http' -const { request } = http import type { AttachInfoData, BusinessTypeResult } from './type' +import http from '@/utils/http' + +const { request } = http /** * 批量新增附件信息 @@ -13,8 +14,8 @@ export function batchAddAttachment(businessType: string, formData: FormData) { method: 'post', data: formData, headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } @@ -23,14 +24,14 @@ export function batchAddAttachment(businessType: string, formData: FormData) { * @param businessType 业务类型 * @param formData 表单数据 */ -export function addAttachment(formData: FormData) { +export function addAttachment(formData: FormData) { return request({ url: `/attach-info/model`, method: 'post', data: formData, headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } /** @@ -38,14 +39,14 @@ export function addAttachment(formData: FormData) { * @param businessType 业务类型 * @param formData 表单数据 */ -export function addAttachmentByDefectMarkPic(formData: FormData) { +export function addAttachmentByDefectMarkPic(formData: FormData) { return request({ url: `/attach-info/defect_mark_pic`, method: 'post', data: formData, headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } /** @@ -53,14 +54,14 @@ export function addAttachmentByDefectMarkPic(formData: FormData) { * @param businessType 业务类型 * @param formData 表单数据 */ -export function addAttachInsurance(formData: FormData) { +export function addAttachInsurance(formData: FormData) { return request({ url: `/attach-info/insurance_file`, method: 'post', data: formData, headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } /** @@ -69,7 +70,7 @@ export function addAttachInsurance(formData: FormData) { export function getAttachBusinessTypes() { return request({ url: '/common/list/attach-business_type', - method: 'get' + method: 'get', }) } @@ -80,7 +81,7 @@ export function getAttachBusinessTypes() { export function getAttachmentList(businessType: string) { return request({ url: `/attach-info/list/${businessType}`, - method: 'get' + method: 'get', }) } @@ -91,6 +92,6 @@ export function getAttachmentList(businessType: string) { export function deleteAttachment(id: string | number) { return request({ url: `/attach-info/${id}`, - method: 'delete' + method: 'delete', }) -} \ No newline at end of file +} diff --git a/src/apis/attach-info/type.ts b/src/apis/attach-info/type.ts index 816366e..1bd87ec 100644 --- a/src/apis/attach-info/type.ts +++ b/src/apis/attach-info/type.ts @@ -31,4 +31,4 @@ export interface BusinessType { name: string code: string description?: string -} \ No newline at end of file +} diff --git a/src/apis/attendance-record/index.ts b/src/apis/attendance-record/index.ts index 39c5276..7186662 100644 --- a/src/apis/attendance-record/index.ts +++ b/src/apis/attendance-record/index.ts @@ -1,5 +1,5 @@ -import http from '@/utils/http' import type { AttendanceRecordReq, AttendanceRecordResp } from './type' +import http from '@/utils/http' const BASE_URL = '/attendance-record' @@ -7,7 +7,7 @@ const BASE_URL = '/attendance-record' export function addAttendanceRecord(data: AttendanceRecordReq) { return http.post(BASE_URL, data, { headers: { - 'Content-Type': 'application/json' - } + 'Content-Type': 'application/json', + }, }) -} \ No newline at end of file +} diff --git a/src/apis/attendance-record/type.ts b/src/apis/attendance-record/type.ts index d00853c..4d0ba4f 100644 --- a/src/apis/attendance-record/type.ts +++ b/src/apis/attendance-record/type.ts @@ -1,15 +1,15 @@ /** 新增考勤记录请求体 */ export interface AttendanceRecordReq { - recordImage?: string - recordPosition?: string - recordPositionLabel?: string - } - - /** 新增考勤记录响应体 */ - export interface AttendanceRecordResp { - code: number - data: object - msg: string - status: number - success: boolean - } \ No newline at end of file + recordImage?: string + recordPosition?: string + recordPositionLabel?: string +} + +/** 新增考勤记录响应体 */ +export interface AttendanceRecordResp { + code: number + data: object + msg: string + status: number + success: boolean +} diff --git a/src/apis/auth/index.ts b/src/apis/auth/index.ts index d1be56b..c45e7c4 100644 --- a/src/apis/auth/index.ts +++ b/src/apis/auth/index.ts @@ -1,6 +1,6 @@ import type * as T from './type' import http from '@/utils/http' -import { convertMenuData, type ApiMenuItem } from '@/utils/menuConverter' +import { type ApiMenuItem, convertMenuData } from '@/utils/menuConverter' export type * from './type' diff --git a/src/apis/auth/type.ts b/src/apis/auth/type.ts index ced4dca..ae4d098 100644 --- a/src/apis/auth/type.ts +++ b/src/apis/auth/type.ts @@ -1,64 +1,64 @@ /** 用户信息响应类型 */ export interface UserInfoResponse { - code: number; - status: number; - success: boolean; - msg: string; + code: number + status: number + success: boolean + msg: string data: { - user: UserDetail; - dept: DeptDetail; - roles: RoleDetail[]; - posts: any[]; - }; + user: UserDetail + dept: DeptDetail + roles: RoleDetail[] + posts: any[] + } } /** 用户详细信息 */ export interface UserDetail { - userId: string; - account: string; - name: string; - status: number; - userCode: string; - userStatus: string; - userType: string; - mobile: string; - createTime: string; - avatar?: string; + userId: string + account: string + name: string + status: number + userCode: string + userStatus: string + userType: string + mobile: string + createTime: string + avatar?: string } /** 部门详细信息 */ export interface DeptDetail { - deptId: string; - deptName: string; - parentId: string; - orderNum: number; - leaderId: string; - status: string; + deptId: string + deptName: string + parentId: string + orderNum: number + leaderId: string + status: string } /** 角色详细信息 */ export interface RoleDetail { - roleId: string; - roleName: string; - roleCode: string | null; - roleKey: string; + roleId: string + roleName: string + roleCode: string | null + roleKey: string } /** 用户类型 - 兼容旧版本 */ export interface UserInfo { - id: string; - username: string; - nickname: string; - gender: 0 | 1 | 2; - email: string; - phone: string; - avatar: string; - pwdResetTime: string; - pwdExpired: boolean; - registrationDate: string; - deptName: string; - roles: string[]; - permissions: string[]; + id: string + username: string + nickname: string + gender: 0 | 1 | 2 + email: string + phone: string + avatar: string + pwdResetTime: string + pwdExpired: boolean + registrationDate: string + deptName: string + roles: string[] + permissions: string[] } /** 路由类型 */ diff --git a/src/apis/common/type.ts b/src/apis/common/type.ts index d7749b6..d9c0cb9 100644 --- a/src/apis/common/type.ts +++ b/src/apis/common/type.ts @@ -66,9 +66,9 @@ export interface DefectTypeResp { /** 缺陷类型选项类型 - 用于前端组件 */ export interface DefectTypeOption { - code: string; - label: string; - value: string; - name?: string; // 兼容性字段 - sort?: number; // 兼容性字段 + code: string + label: string + value: string + name?: string // 兼容性字段 + sort?: number // 兼容性字段 } diff --git a/src/apis/employee/index.ts b/src/apis/employee/index.ts index 9614a80..972cc20 100644 --- a/src/apis/employee/index.ts +++ b/src/apis/employee/index.ts @@ -1,5 +1,5 @@ +import type { CertificationInfo, CertificationListParams, CertificationListResponse, CertificationPageResponse, CertificationReq, SimpleUserInfo } from './type' import http from '@/utils/http' -import type { CertificationInfo, CertificationListParams, CertificationListResponse, SimpleUserInfo,CertificationPageResponse, CertificationReq } from './type' const { request } = http @@ -11,7 +11,7 @@ export function createCertification(data: CertificationReq) { return request({ url: '/certification', method: 'post', - data + data, }) } @@ -20,7 +20,7 @@ export function getCertificationList(params: CertificationListParams) { return request({ url: '/certification/list', method: 'get', - params + params, }) } @@ -28,7 +28,7 @@ export function getCertificationList(params: CertificationListParams) { export function getCertificationDetail(certificationId: string) { return request({ url: `/certification/detail/${certificationId}`, - method: 'get' + method: 'get', }) } @@ -37,7 +37,7 @@ export function updateCertification(certificationId: string, data: Certification return request({ url: `/certification/${certificationId}`, method: 'put', - data + data, }) } @@ -45,7 +45,7 @@ export function updateCertification(certificationId: string, data: Certification export function deleteCertification(certificationId: string) { return request({ url: `/certification/${certificationId}`, - method: 'delete' + method: 'delete', }) } @@ -54,7 +54,7 @@ export function batchDeleteCertification(ids: string[]) { return request({ url: '/certification/batch', method: 'delete', - data: { ids } + data: { ids }, }) } @@ -64,7 +64,7 @@ export function exportCertification(params: CertificationListParams) { url: '/certification/export', method: 'get', params, - responseType: 'blob' + responseType: 'blob', }) } @@ -72,14 +72,14 @@ export function exportCertification(params: CertificationListParams) { export function getUserList() { return request({ url: '/user/list', - method: 'get' + method: 'get', }) -} +} // 查询人员资质信息分页列表(新接口) export function getCertificationPage(params: CertificationListParams) { return request({ url: '/certification/page', method: 'get', - params + params, }) -} \ No newline at end of file +} diff --git a/src/apis/employee/type.ts b/src/apis/employee/type.ts index b54e3ff..d8196c0 100644 --- a/src/apis/employee/type.ts +++ b/src/apis/employee/type.ts @@ -40,7 +40,7 @@ export interface SimpleUserInfo { userId: string name: string account: string -} +} export interface CertificationInfo { certificationId?: string certificationCode: string @@ -56,4 +56,4 @@ export interface CertificationPageResponse { code?: number msg?: string [key: string]: any -} \ No newline at end of file +} diff --git a/src/apis/equipment/index.ts b/src/apis/equipment/index.ts new file mode 100644 index 0000000..b222a9a --- /dev/null +++ b/src/apis/equipment/index.ts @@ -0,0 +1,49 @@ +import http from '@/utils/http' +import type * as T from '@/types/equipment.d' + +const BASE_URL = '/equipment' + +/** @desc 分页查询设备列表 */ +export function pageEquipment(query: T.EquipmentPageQuery) { + return http.get(`${BASE_URL}/page`, query) +} + +/** @desc 查询设备列表 */ +export function listEquipment(query?: T.EquipmentPageQuery) { + return http.get(`${BASE_URL}/list`, query) +} + +/** @desc 查询设备详情 */ +export function getEquipmentDetail(equipmentId: string) { + return http.get(`${BASE_URL}/detail/${equipmentId}`) +} + +/** @desc 新增设备 */ +export function createEquipment(data: T.EquipmentReq) { + return http.post(`${BASE_URL}`, data) +} + +/** @desc 更新设备 */ +export function updateEquipment(equipmentId: string, data: T.EquipmentReq) { + return http.put(`${BASE_URL}/${equipmentId}`, data) +} + +/** @desc 删除设备 */ +export function deleteEquipment(equipmentId: string) { + return http.del(`${BASE_URL}/${equipmentId}`) +} + +/** @desc 设备状态变更 */ +export function changeEquipmentStatus(equipmentId: string, status: string) { + return http.put(`${BASE_URL}/${equipmentId}/status`, { status }) +} + +/** @desc 设备分配 */ +export function assignEquipment(equipmentId: string, userId: string) { + return http.put(`${BASE_URL}/${equipmentId}/assign`, { userId }) +} + +/** @desc 设备归还 */ +export function returnEquipment(equipmentId: string) { + return http.put(`${BASE_URL}/${equipmentId}/return`) +} diff --git a/src/apis/equipment/type.ts b/src/apis/equipment/type.ts new file mode 100644 index 0000000..5f8a9fd --- /dev/null +++ b/src/apis/equipment/type.ts @@ -0,0 +1,207 @@ +/** + * 设备列表查询请求 + */ +export interface EquipmentListReq { + /** 设备名称 */ + equipmentName?: string + /** 设备类型 */ + equipmentType?: string + /** 设备状态 */ + equipmentStatus?: string + /** 设备序列号 */ + equipmentSn?: string + /** 资产编号 */ + assetCode?: string + /** 品牌 */ + brand?: string + /** 位置状态 */ + locationStatus?: string + /** 健康状态 */ + healthStatus?: string + /** 负责人 */ + responsiblePerson?: string + /** 使用状态 */ + useStatus?: string + /** 项目ID */ + projectId?: string + /** 使用人ID */ + userId?: string + /** 当前页码 */ + pageNum?: number + /** 每页大小 */ + pageSize?: number + /** 排序字段 */ + orderBy?: string + /** 排序方向 */ + orderDirection?: string +} + +/** + * 分页响应格式 + */ +export interface PageResult { + code: number + msg: string + rows: T[] + total: number +} + +/** + * 设备信息响应 + */ +export interface EquipmentResp { + /** 设备ID */ + equipmentId: string + /** 资产编号 */ + assetCode?: string + /** 设备名称 */ + equipmentName: string + /** 设备类型 */ + equipmentType: string + /** 设备类型描述 */ + equipmentTypeLabel?: string + /** 设备型号 */ + equipmentModel: string + /** 设备SN */ + equipmentSn: string + /** 品牌 */ + brand?: string + /** 配置规格/参数 */ + specification?: string + /** 设备状态 */ + equipmentStatus: string + /** 设备状态描述 */ + equipmentStatusLabel?: string + /** 使用状态 */ + useStatus: string + /** 位置状态 */ + locationStatus?: string + /** 位置状态描述 */ + locationStatusLabel?: string + /** 设备当前物理位置 */ + physicalLocation?: string + /** 负责人 */ + responsiblePerson?: string + /** 健康状态 */ + healthStatus?: string + /** 健康状态描述 */ + healthStatusLabel?: string + /** 采购时间 */ + purchaseTime?: string + /** 入库时间 */ + inStockTime?: string + /** 启用时间 */ + activationTime?: string + /** 预计报废时间 */ + expectedScrapTime?: string + /** 实际报废时间 */ + actualScrapTime?: string + /** 状态变更时间 */ + statusChangeTime?: string + /** 采购订单 */ + purchaseOrder?: string + /** 供应商名称 */ + supplierName?: string + /** 采购价格 */ + purchasePrice?: number + /** 当前净值 */ + currentNetValue?: number + /** 折旧方法 */ + depreciationMethod?: string + /** 折旧年限 */ + depreciationYears?: number + /** 残值 */ + salvageValue?: number + /** 保修截止日期 */ + warrantyExpireDate?: string + /** 上次维护日期 */ + lastMaintenanceDate?: string + /** 下次维护日期 */ + nextMaintenanceDate?: string + /** 维护人员 */ + maintenancePerson?: string + /** 库存条码 */ + inventoryBarcode?: string + /** 资产备注 */ + assetRemark?: string + /** 项目ID */ + projectId?: string + /** 项目名称 */ + projectName?: string + /** 使用人ID */ + userId?: string + /** 使用人 */ + name?: string + /** 创建时间 */ + createTime?: string + /** 更新时间 */ + updateTime?: string +} + +/** + * 设备请求 + */ +export interface EquipmentReq { + /** 设备名称 */ + equipmentName: string + /** 设备型号 */ + equipmentModel: string + /** 设备类型 */ + equipmentType: string + /** 设备状态 */ + equipmentStatus: string + /** 使用状态 */ + useStatus: string + /** 设备序列号 */ + equipmentSn: string + /** 资产编号 */ + assetCode?: string + /** 品牌 */ + brand?: string + /** 配置规格/参数 */ + specification?: string + /** 位置状态 */ + locationStatus?: string + /** 设备当前物理位置 */ + physicalLocation?: string + /** 负责人 */ + responsiblePerson?: string + /** 健康状态 */ + healthStatus?: string + /** 采购时间 */ + purchaseTime?: string + /** 入库时间 */ + inStockTime?: string + /** 启用时间 */ + activationTime?: string + /** 预计报废时间 */ + expectedScrapTime?: string + /** 实际报废时间 */ + actualScrapTime?: string + /** 采购订单 */ + purchaseOrder?: string + /** 供应商名称 */ + supplierName?: string + /** 采购价格 */ + purchasePrice?: number + /** 当前净值 */ + currentNetValue?: number + /** 折旧方法 */ + depreciationMethod?: string + /** 折旧年限 */ + depreciationYears?: number + /** 残值 */ + salvageValue?: number + /** 保修截止日期 */ + warrantyExpireDate?: string + /** 上次维护日期 */ + lastMaintenanceDate?: string + /** 下次维护日期 */ + nextMaintenanceDate?: string + /** 维护人员 */ + maintenancePerson?: string + /** 库存条码 */ + inventoryBarcode?: string + /** 资产备注 */ + assetRemark?: string +} diff --git a/src/apis/health-record/index.ts b/src/apis/health-record/index.ts index 23284c2..2326336 100644 --- a/src/apis/health-record/index.ts +++ b/src/apis/health-record/index.ts @@ -40,7 +40,7 @@ export function createHealthRecord(data: HealthRecord) { return request({ url: '/health-record', method: 'post', - data + data, }) } @@ -49,7 +49,7 @@ export function getHealthRecordList(params: HealthRecordListParams) { return request({ url: '/health-record/list', method: 'get', - params + params, }) } @@ -57,7 +57,7 @@ export function getHealthRecordList(params: HealthRecordListParams) { export function getHealthRecordDetail(id: string) { return request({ url: `/health-record/detail/${id}`, - method: 'get' + method: 'get', }) } @@ -66,7 +66,7 @@ export function updateHealthRecord(id: string, data: HealthRecord) { return request({ url: `/health-record/${id}`, method: 'put', - data + data, }) } @@ -74,7 +74,7 @@ export function updateHealthRecord(id: string, data: HealthRecord) { export function deleteHealthRecord(id: string) { return request({ url: `/health-record/${id}`, - method: 'delete' + method: 'delete', }) } @@ -83,14 +83,14 @@ export function uploadHealthReport(file: File, recordId: string) { const formData = new FormData() formData.append('file', file) formData.append('recordId', recordId) - + return request({ url: '/health-record/upload-report', method: 'post', data: formData, headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } @@ -99,7 +99,7 @@ export function downloadHealthReport(fileId: string) { return request({ url: `/health-record/download-report/${fileId}`, method: 'get', - responseType: 'blob' + responseType: 'blob', }) } @@ -107,7 +107,7 @@ export function downloadHealthReport(fileId: string) { export function getEmployeeHealthHistory(employeeId: string) { return request({ url: `/health-record/employee/${employeeId}`, - method: 'get' + method: 'get', }) } @@ -117,7 +117,7 @@ export function exportHealthRecords(params: HealthRecordListParams) { url: '/health-record/export', method: 'get', params, - responseType: 'blob' + responseType: 'blob', }) } @@ -131,6 +131,6 @@ export function scheduleHealthCheck(data: { return request({ url: '/health-record/schedule', method: 'post', - data + data, }) -} \ No newline at end of file +} diff --git a/src/apis/industrial-image/defect.ts b/src/apis/industrial-image/defect.ts index ab0f267..dcf3e26 100644 --- a/src/apis/industrial-image/defect.ts +++ b/src/apis/industrial-image/defect.ts @@ -87,7 +87,7 @@ export const detectDefects = (params: DefectDetectionRequest) => { } /** @desc 手动添加缺陷记录 */ -export const addManualDefect = (params: ManualDefectAddRequest,imageId:string) => { +export const addManualDefect = (params: ManualDefectAddRequest, imageId: string) => { return http.post(`/defect/${imageId}`, params) } @@ -95,12 +95,12 @@ export const addManualDefect = (params: ManualDefectAddRequest,imageId:string) = // 缺陷列表查询参数接口 export interface DefectListParams { - defectId?: string; - defectLevel?: string; - defectType?: string; - keyword?: string; - turbineId?: string; - imageId?: string; // 添加imageId参数,用于按图像筛选缺陷 + defectId?: string + defectLevel?: string + defectType?: string + keyword?: string + turbineId?: string + imageId?: string // 添加imageId参数,用于按图像筛选缺陷 } /** @desc 获取缺陷列表 */ @@ -111,7 +111,7 @@ export const getDefectList = (params: DefectListParams) => { msg: string status: number success: boolean - }>('/defect/list', params ) + }>('/defect/list', params) } /** @desc 添加缺陷 */ @@ -150,7 +150,7 @@ export const deleteDefect = (defectId: string) => { export const uploadAnnotatedImage = (imageBlob: Blob, fileName: string) => { const formData = new FormData() formData.append('file', imageBlob, fileName) - + return http.post<{ code: number data: AttachInfoData @@ -159,8 +159,8 @@ export const uploadAnnotatedImage = (imageBlob: Blob, fileName: string) => { success: boolean }>('/attach-info/defect_mark_pic', formData, { headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } @@ -177,63 +177,63 @@ export interface AttachInfoData { // 缺陷信息接口 export interface DefectInfo { - id: string; - defectId?: string; - defectName?: string; - defectLevel?: string; - defectType?: string; - defectPosition?: string; - detectionDate?: string; - description?: string; - repairStatus?: string; - repairIdea?: string; - labelInfo?: string; + id: string + defectId?: string + defectName?: string + defectLevel?: string + defectType?: string + defectPosition?: string + detectionDate?: string + description?: string + repairStatus?: string + repairIdea?: string + labelInfo?: string markInfo?: { - bbox?: number[]; - clsId?: number; - confidence?: number; - label?: string; - [key: string]: any; - }; - [key: string]: any; + bbox?: number[] + clsId?: number + confidence?: number + label?: string + [key: string]: any + } + [key: string]: any } // 缺陷等级类型 export interface DefectLevelType { - code: string; - name: string; - value: string; - sort: number; - description?: string; + code: string + name: string + value: string + sort: number + description?: string } // 缺陷类型 export interface DefectType { - code: string; - name: string; - value: string; - sort: number; - description?: string; + code: string + name: string + value: string + sort: number + description?: string } // 获取缺陷等级列表 export const getDefectLevels = () => { return http.get<{ - code: number; - data: DefectLevelType[]; - msg: string; - status: number; - success: boolean; + code: number + data: DefectLevelType[] + msg: string + status: number + success: boolean }>('/common/list/defect-level') } // 获取缺陷类型列表 export const getDefectTypes = () => { return http.get<{ - code: number; - data: DefectType[]; - msg: string; - status: number; - success: boolean; + code: number + data: DefectType[] + msg: string + status: number + success: boolean }>('/common/list/defect-type') -} \ No newline at end of file +} diff --git a/src/apis/industrial-image/index.ts b/src/apis/industrial-image/index.ts index a657163..e95c39a 100644 --- a/src/apis/industrial-image/index.ts +++ b/src/apis/industrial-image/index.ts @@ -114,7 +114,7 @@ export const uploadSingleImage = (imageSource: string, file: File, params?: { }) => { const formData = new FormData() formData.append('file', file) - + // 构建查询参数 const queryParams = new URLSearchParams() if (params?.altitude) queryParams.append('altitude', params.altitude) @@ -122,13 +122,13 @@ export const uploadSingleImage = (imageSource: string, file: File, params?: { if (params?.longitude) queryParams.append('longitude', params.longitude) if (params?.partId) queryParams.append('partId', params.partId) if (params?.uploadUser) queryParams.append('uploadUser', params.uploadUser) - - const url = `/common/upload-image/${imageSource}${queryParams.toString() ? '?' + queryParams.toString() : ''}` - + + const url = `/common/upload-image/${imageSource}${queryParams.toString() ? `?${queryParams.toString()}` : ''}` + return http.post(url, formData, { headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } @@ -141,12 +141,12 @@ export const batchUploadImages = (imageSource: string, files: File[], params?: { uploadUser?: string }) => { const formData = new FormData() - + // 添加文件 - files.forEach(file => { + files.forEach((file) => { formData.append('files', file) }) - + // 构建查询参数 const queryParams = new URLSearchParams() if (params?.altitude) queryParams.append('altitude', params.altitude) @@ -154,13 +154,13 @@ export const batchUploadImages = (imageSource: string, files: File[], params?: { if (params?.longitude) queryParams.append('longitude', params.longitude) if (params?.partId) queryParams.append('partId', params.partId) if (params?.uploadUser) queryParams.append('uploadUser', params.uploadUser) - - const url = `/common/batch-upload-image/${imageSource}${queryParams.toString() ? '?' + queryParams.toString() : ''}` - + + const url = `/common/batch-upload-image/${imageSource}${queryParams.toString() ? `?${queryParams.toString()}` : ''}` + return http.post(url, formData, { headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } @@ -173,8 +173,8 @@ export const detectDefects = (params: { }) => { return http.post('/defect/detect', params, { headers: { - 'Content-Type': 'application/json' - } + 'Content-Type': 'application/json', + }, }) } @@ -183,15 +183,15 @@ export const uploadImageToPartV2 = ( imageSource: string, partId: string, files: File[], - params: Partial + params: Partial, ) => { const formData = new FormData() - + // 添加文件 - files.forEach(file => { + files.forEach((file) => { formData.append('files', file) }) - + // 添加其他参数 if (params.collectorId) formData.append('collectorId', params.collectorId) if (params.collectorName) formData.append('collectorName', params.collectorName) @@ -223,23 +223,23 @@ export const uploadImageToPartV2 = ( if (params.temperatureMin !== undefined) formData.append('temperatureMin', params.temperatureMin.toString()) if (params.weather) formData.append('weather', params.weather) if (params.windLevel !== undefined) formData.append('windLevel', params.windLevel.toString()) - + return http.post(`/image/${imageSource}/upload/${partId}`, formData, { headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } /** @desc 图像导入接口(更新为使用真实接口) */ export const importImages = (files: FileList | File[], params: T.ImageImportParams) => { const fileArray = Array.from(files) - + // 使用批量上传接口 return batchUploadImages(params.imageSource || 'default', fileArray, { partId: params.componentId, - uploadUser: params.uploadUser - }).then(response => { + uploadUser: params.uploadUser, + }).then((response) => { // 如果需要自动标注 if (params.autoAnnotate && params.annotationTypes && params.annotationTypes.length > 0) { // 这里可以添加自动标注逻辑 @@ -255,7 +255,7 @@ export const autoAnnotateImage = (params: T.AutoAnnotationParams) => { confThreshold: params.confidenceThreshold || 0.5, defectTypeList: params.annotationTypes, imageId: params.imageId, - modelId: params.params?.modelId || 'default' + modelId: params.params?.modelId || 'default', }) } @@ -275,10 +275,10 @@ export const confirmAnnotation = (imageId: string, annotationId: string) => { } /** @desc 上传图像(保留旧接口兼容性) */ -export const uploadImage = (file: File, params: { projectId: string; componentId?: string }) => { +export const uploadImage = (file: File, params: { projectId: string, componentId?: string }) => { return uploadSingleImage('default', file, { partId: params.componentId, - uploadUser: 'current-user' + uploadUser: 'current-user', }) } @@ -321,21 +321,20 @@ export function reprocessImage(params: T.ImageProcessParams) { export const batchProcessImages = (imageIds: string[], processType: string) => { return http.post(`/industrial-image/batch-process`, { imageIds, - processType + processType, }) } /** @desc 导出处理结果 */ export function exportProcessResults(query: T.ImageQuery) { return http.get(`/industrial-image/export/results`, query, { - responseType: 'blob' + responseType: 'blob', }) } /** @desc 生成检测报告 */ export function generateReport(projectId: string) { return http.post(`/industrial-image/report/generate`, { projectId }, { - responseType: 'blob' + responseType: 'blob', }) } - diff --git a/src/apis/industrial-image/type.ts b/src/apis/industrial-image/type.ts index 5d9e24c..18e2e4a 100644 --- a/src/apis/industrial-image/type.ts +++ b/src/apis/industrial-image/type.ts @@ -153,7 +153,7 @@ export interface IndustrialImage { name: string /** 图像路径 */ path: string - /** 图像路径(API返回字段)*/ + /** 图像路径(API返回字段) */ imagePath?: string /** 缩略图路径 */ thumbnailPath?: string @@ -185,7 +185,7 @@ export interface IndustrialImage { createTime?: string /** 更新时间 */ updateTime?: string - + // 扩展字段 - 来自真实API /** 部件名称 */ partName?: string @@ -412,4 +412,4 @@ export interface ImageProcessResult { createTime?: string /** 完成时间 */ completeTime?: string -} \ No newline at end of file +} diff --git a/src/apis/insurance-company/index.ts b/src/apis/insurance-company/index.ts index 2c74583..26231c5 100644 --- a/src/apis/insurance-company/index.ts +++ b/src/apis/insurance-company/index.ts @@ -34,7 +34,7 @@ export function createInsuranceCompany(data: InsuranceCompany) { return request({ url: '/insurance-company', method: 'post', - data + data, }) } @@ -43,7 +43,7 @@ export function getInsuranceCompanyList(params: InsuranceCompanyListParams) { return request({ url: '/insurance-company/list', method: 'get', - params + params, }) } @@ -51,7 +51,7 @@ export function getInsuranceCompanyList(params: InsuranceCompanyListParams) { export function getInsuranceCompanyDetail(id: string) { return request({ url: `/insurance-company/detail/${id}`, - method: 'get' + method: 'get', }) } @@ -60,7 +60,7 @@ export function updateInsuranceCompany(id: string, data: InsuranceCompany) { return request({ url: `/insurance-company/${id}`, method: 'put', - data + data, }) } @@ -68,7 +68,7 @@ export function updateInsuranceCompany(id: string, data: InsuranceCompany) { export function deleteInsuranceCompany(id: string) { return request({ url: `/insurance-company/${id}`, - method: 'delete' + method: 'delete', }) } @@ -76,7 +76,7 @@ export function deleteInsuranceCompany(id: string) { export function terminateCooperation(id: string) { return request({ url: `/insurance-company/terminate/${id}`, - method: 'post' + method: 'post', }) } @@ -84,7 +84,7 @@ export function terminateCooperation(id: string) { export function resumeCooperation(id: string) { return request({ url: `/insurance-company/resume/${id}`, - method: 'post' + method: 'post', }) } diff --git a/src/apis/insurance-file/index.ts b/src/apis/insurance-file/index.ts index b63c751..a33d04b 100644 --- a/src/apis/insurance-file/index.ts +++ b/src/apis/insurance-file/index.ts @@ -48,14 +48,14 @@ export function uploadInsuranceFile(data: UploadInsuranceFileParams) { if (data.description) { formData.append('description', data.description) } - + return request({ url: '/insurance-file/upload', method: 'post', data: formData, headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } @@ -64,7 +64,7 @@ export function getInsuranceFileList(params: InsuranceFileListParams) { return request({ url: '/insurance-file/list', method: 'get', - params + params, }) } @@ -72,7 +72,7 @@ export function getInsuranceFileList(params: InsuranceFileListParams) { export function getInsuranceFileDetail(id: string) { return request({ url: `/insurance-file/detail/${id}`, - method: 'get' + method: 'get', }) } @@ -81,7 +81,7 @@ export function updateInsuranceFile(id: string, data: Partial) { return request({ url: `/insurance-file/${id}`, method: 'put', - data + data, }) } @@ -89,7 +89,7 @@ export function updateInsuranceFile(id: string, data: Partial) { export function deleteInsuranceFile(id: string) { return request({ url: `/insurance-file/${id}`, - method: 'delete' + method: 'delete', }) } @@ -98,7 +98,7 @@ export function batchDeleteInsuranceFiles(ids: string[]) { return request({ url: '/insurance-file/batch', method: 'delete', - data: { ids } + data: { ids }, }) } @@ -107,7 +107,7 @@ export function downloadInsuranceFile(id: string) { return request({ url: `/insurance-file/download/${id}`, method: 'get', - responseType: 'blob' + responseType: 'blob', }) } @@ -116,7 +116,7 @@ export function previewInsuranceFile(id: string) { return request({ url: `/insurance-file/preview/${id}`, method: 'get', - responseType: 'blob' + responseType: 'blob', }) } @@ -124,7 +124,7 @@ export function previewInsuranceFile(id: string) { export function getEmployeeFiles(employeeId: string) { return request({ url: `/insurance-file/employee/${employeeId}`, - method: 'get' + method: 'get', }) } @@ -136,7 +136,7 @@ export function getInsuranceFileStatistics() { totalSize: number }[]>({ url: '/insurance-file/statistics', - method: 'get' + method: 'get', }) } @@ -156,13 +156,13 @@ export function batchUploadFiles(data: { if (data.description) { formData.append('description', data.description) } - + return request({ url: '/insurance-file/batch-upload', method: 'post', data: formData, headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) -} \ No newline at end of file +} diff --git a/src/apis/insurance-type/index.ts b/src/apis/insurance-type/index.ts index 6e3b6c1..9eb05de 100644 --- a/src/apis/insurance-type/index.ts +++ b/src/apis/insurance-type/index.ts @@ -28,7 +28,7 @@ export function createInsuranceType(data: InsuranceType) { return request({ url: '/insurance-type', method: 'post', - data + data, }) } @@ -37,7 +37,7 @@ export function getInsuranceTypeList(params?: InsuranceTypeListParams) { return request({ url: '/insurance-type/list', method: 'get', - params + params, }) } @@ -45,7 +45,7 @@ export function getInsuranceTypeList(params?: InsuranceTypeListParams) { export function getInsuranceTypeDetail(insuranceTypeId: string) { return request({ url: `/insurance-type/detail/${insuranceTypeId}`, - method: 'get' + method: 'get', }) } @@ -54,7 +54,7 @@ export function updateInsuranceType(id: string, data: InsuranceType) { return request({ url: `/insurance-type/${id}`, method: 'put', - data + data, }) } @@ -62,7 +62,7 @@ export function updateInsuranceType(id: string, data: InsuranceType) { export function deleteInsuranceType(id: string) { return request({ url: `/insurance-type/${id}`, - method: 'delete' + method: 'delete', }) } @@ -71,6 +71,6 @@ export function batchDeleteInsuranceType(ids: string[]) { return request({ url: '/insurance-type/batch', method: 'delete', - data: { ids } + data: { ids }, }) } diff --git a/src/apis/insurance/index.ts b/src/apis/insurance/index.ts index 9144f0f..ef6e2c6 100644 --- a/src/apis/insurance/index.ts +++ b/src/apis/insurance/index.ts @@ -1,5 +1,5 @@ -import http from '@/utils/http' import type { InsuranceInfo, InsuranceListParams, InsuranceListResponse, RenewInsuranceParams } from './type' +import http from '@/utils/http' const { request } = http @@ -11,7 +11,7 @@ export function createInsurance(data: InsuranceInfo) { return request({ url: '/insurance-info', method: 'post', - data + data, }) } @@ -20,7 +20,7 @@ export function getInsuranceList(params: InsuranceListParams) { return request({ url: '/insurance-info/list', method: 'get', - params + params, }) } @@ -28,7 +28,7 @@ export function getInsuranceList(params: InsuranceListParams) { export function getInsuranceDetail(id: string) { return request({ url: `/insurance-info/detail/${id}`, - method: 'get' + method: 'get', }) } @@ -37,7 +37,7 @@ export function updateInsurance(id: string, data: InsuranceInfo) { return request({ url: `/insurance-info/${id}`, method: 'put', - data + data, }) } @@ -45,7 +45,7 @@ export function updateInsurance(id: string, data: InsuranceInfo) { export function deleteInsurance(id: string) { return request({ url: `/insurance-info/${id}`, - method: 'delete' + method: 'delete', }) } @@ -54,7 +54,7 @@ export function renewInsurance(id: string, data: RenewInsuranceParams) { return request({ url: `/insurance-info/renew/${id}`, method: 'post', - data + data, }) } @@ -63,7 +63,7 @@ export function batchDeleteInsurance(ids: string[]) { return request({ url: '/insurance-info/batch', method: 'delete', - data: { ids } + data: { ids }, }) } @@ -73,6 +73,6 @@ export function exportInsurance(params: InsuranceListParams) { url: '/insurance-info/export', method: 'get', params, - responseType: 'blob' + responseType: 'blob', }) -} \ No newline at end of file +} diff --git a/src/apis/insurance/type.ts b/src/apis/insurance/type.ts index 57d0d31..1f1110c 100644 --- a/src/apis/insurance/type.ts +++ b/src/apis/insurance/type.ts @@ -1,7 +1,7 @@ /** 保险信息接口 */ export interface InsuranceInfo { id?: string - attachInfoId:string + attachInfoId: string insuranceCompanyId: string insuranceTypeId: string userId: string @@ -38,4 +38,4 @@ export interface InsuranceListResponse { export interface RenewInsuranceParams { expireDate: string insurancePremium: number -} \ No newline at end of file +} diff --git a/src/apis/model-config/index.ts b/src/apis/model-config/index.ts index 64399e6..f6ad6ff 100644 --- a/src/apis/model-config/index.ts +++ b/src/apis/model-config/index.ts @@ -1,5 +1,5 @@ +import type { ModelConfigDetailResponse, ModelConfigListResponse, ModelConfigRequest, ModelConfigResponse } from './type' import http from '@/utils/http' -import type { ModelConfigRequest, ModelConfigResponse, ModelConfigListResponse, ModelConfigDetailResponse } from './type' const { request } = http @@ -11,7 +11,7 @@ export function createModelConfig(data: ModelConfigRequest) { return request({ url: '/model-config', method: 'post', - data + data, }) } @@ -23,7 +23,7 @@ export function updateModelConfig(data: ModelConfigRequest) { return request({ url: '/model-config', method: 'put', - data + data, }) } @@ -44,7 +44,7 @@ export function getModelConfigList(params?: { return request({ url: '/model-config/list', method: 'get', - params + params, }) } @@ -55,7 +55,7 @@ export function getModelConfigList(params?: { export function getModelConfigDetail(modelId: string) { return request({ url: `/model-config/${modelId}`, - method: 'get' + method: 'get', }) } @@ -66,6 +66,6 @@ export function getModelConfigDetail(modelId: string) { export function deleteModelConfig(modelId: string) { return request({ url: `/model-config/${modelId}`, - method: 'delete' + method: 'delete', }) -} \ No newline at end of file +} diff --git a/src/apis/model-config/type.ts b/src/apis/model-config/type.ts index ce57bf4..b969000 100644 --- a/src/apis/model-config/type.ts +++ b/src/apis/model-config/type.ts @@ -49,4 +49,4 @@ export interface ModelConfigDetailResponse { data: ModelConfigResponse msg: string status: number -} \ No newline at end of file +} diff --git a/src/apis/performance-setting/index.ts b/src/apis/performance-setting/index.ts index 531e171..8cae0b2 100644 --- a/src/apis/performance-setting/index.ts +++ b/src/apis/performance-setting/index.ts @@ -1,5 +1,5 @@ +import type { DimensionQuery, PerformanceDimension, PerformanceRule, RuleQuery } from './type' import http from '@/utils/http' -import type { PerformanceDimension, PerformanceRule, DimensionQuery, RuleQuery } from './type' /** 维度相关 */ export function getDimensionList(params?: DimensionQuery) { @@ -36,5 +36,5 @@ export function deleteRule(id: string) { } // 我的绩效 export function getMyEvaluation() { - return http.get('/performance-evaluation/my') - } \ No newline at end of file + return http.get('/performance-evaluation/my') +} diff --git a/src/apis/performance-setting/type.ts b/src/apis/performance-setting/type.ts index c0ad66a..93b3dba 100644 --- a/src/apis/performance-setting/type.ts +++ b/src/apis/performance-setting/type.ts @@ -1,39 +1,39 @@ /** 绩效维度 */ export interface PerformanceDimension { - dimensionId: string - dimensionName: string - description?: string - deptName: string - status: 0 | 1 - createBy?: string - createTime?: string - updateBy?: string - updateTime?: string - } - - /** 绩效细则 */ - export interface PerformanceRule { - ruleId: string - ruleName: string - description?: string - dimensionName: string - bonus?: string - score?: number - weight?: number - status: 0 | 1 - createBy?: string - createTime?: string - updateBy?: string - updateTime?: string - } - - /** 查询参数 */ - export interface DimensionQuery { - dimensionName?: string - status?: 0 | 1 - } - export interface RuleQuery { - dimensionName?: string - ruleName?: string - status?: 0 | 1 - } \ No newline at end of file + dimensionId: string + dimensionName: string + description?: string + deptName: string + status: 0 | 1 + createBy?: string + createTime?: string + updateBy?: string + updateTime?: string +} + +/** 绩效细则 */ +export interface PerformanceRule { + ruleId: string + ruleName: string + description?: string + dimensionName: string + bonus?: string + score?: number + weight?: number + status: 0 | 1 + createBy?: string + createTime?: string + updateBy?: string + updateTime?: string +} + +/** 查询参数 */ +export interface DimensionQuery { + dimensionName?: string + status?: 0 | 1 +} +export interface RuleQuery { + dimensionName?: string + ruleName?: string + status?: 0 | 1 +} diff --git a/src/apis/project/budget.ts b/src/apis/project/budget.ts index 689dc3b..c7ac6e7 100644 --- a/src/apis/project/budget.ts +++ b/src/apis/project/budget.ts @@ -89,17 +89,17 @@ export function auditBudget(id: string, data: BudgetAuditReq) { /** @desc 获取预算类型选项 */ export function getBudgetTypes() { - return http.get>(`${BASE_URL}/types`) + return http.get>(`${BASE_URL}/types`) } /** @desc 上传预算附件 */ export function uploadBudgetAttachment(file: File) { const formData = new FormData() formData.append('file', file) - return http.post<{ id: string; name: string; url: string }>(`${BASE_URL}/upload`, formData, { + return http.post<{ id: string, name: string, url: string }>(`${BASE_URL}/upload`, formData, { headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } @@ -111,6 +111,6 @@ export function deleteBudgetAttachment(id: string) { /** @desc 导出预算记录 */ export function exportBudgetRecord(query: BudgetQuery) { return http.get(`${BASE_URL}/export`, query, { - responseType: 'blob' + responseType: 'blob', }) -} \ No newline at end of file +} diff --git a/src/apis/project/index.ts b/src/apis/project/index.ts index bde6b8a..da97650 100644 --- a/src/apis/project/index.ts +++ b/src/apis/project/index.ts @@ -41,12 +41,12 @@ export function importProject(file: File) { formData.append('file', file) return http.post(`${BASE_URL}/import`, formData, { headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) } /** @desc 导出项目 */ export function exportProject(query: T.ProjectQuery) { return http.download(`${BASE_URL}/export`, query) -} \ No newline at end of file +} diff --git a/src/apis/project/task.ts b/src/apis/project/task.ts index c087908..ad93c27 100644 --- a/src/apis/project/task.ts +++ b/src/apis/project/task.ts @@ -65,7 +65,7 @@ export function importTask(file: File, projectId: number) { formData.append('projectId', projectId.toString()) return http.post(`${BASE_URL}/import`, formData, { headers: { - 'Content-Type': 'multipart/form-data' - } + 'Content-Type': 'multipart/form-data', + }, }) -} \ No newline at end of file +} diff --git a/src/apis/project/type.ts b/src/apis/project/type.ts index 32bc3b7..22cad5b 100644 --- a/src/apis/project/type.ts +++ b/src/apis/project/type.ts @@ -1,10 +1,10 @@ /** 项目类型 */ export interface ProjectResp { projectId: string // 项目ID (API返回的是字符串) - projectCode?: string // 项目编号 - projectName: string // 项目名称 + projectCode?: string // 项目编号 + projectName: string // 项目名称 projectIntro?: string // 项目简介 - farmName: string // 风场名称 (API字段名是farmName) + farmName: string // 风场名称 (API字段名是farmName) farmAddress?: string // 风场地址 (API字段名是farmAddress) client?: string // 委托单位 clientContact?: string // 委托单位联系人 @@ -28,10 +28,10 @@ export interface ProjectResp { coverUrl?: string // 封面URL createDt?: Date updateDt?: Date - + // 为了保持向后兼容,添加一些别名字段 id?: string // projectId的别名 - fieldName?: string // farmName的别名 + fieldName?: string // farmName的别名 fieldLocation?: string // farmAddress的别名 commissionUnit?: string // client的别名 commissionContact?: string // clientContact的别名 @@ -85,4 +85,4 @@ export interface TaskQuery { status?: string } -export interface TaskPageQuery extends TaskQuery, PageQuery {} \ No newline at end of file +export interface TaskPageQuery extends TaskQuery, PageQuery {} diff --git a/src/apis/salary/index.ts b/src/apis/salary/index.ts index 1317359..fc65cb4 100644 --- a/src/apis/salary/index.ts +++ b/src/apis/salary/index.ts @@ -1,4 +1,4 @@ -import type { SalaryRecord, SalaryQuery, SalaryCreateRequest } from '@/views/salary-management/types' +import type { SalaryCreateRequest, SalaryQuery, SalaryRecord } from '@/views/salary-management/types' import http from '@/utils/http' const BASE_URL = '/salary' @@ -34,7 +34,7 @@ export const submitApproval = (id: string) => { } // 审批工资单 -export const approveSalary = (id: string, data: { status: string; comment?: string }) => { +export const approveSalary = (id: string, data: { status: string, comment?: string }) => { return http.put(`${BASE_URL}/${id}/approve`, data) } diff --git a/src/apis/system/menu-adapter.ts b/src/apis/system/menu-adapter.ts index 09bb0ec..2aeee18 100644 --- a/src/apis/system/menu-adapter.ts +++ b/src/apis/system/menu-adapter.ts @@ -1,4 +1,3 @@ -import type * as T from './type' import http from '@/utils/http' import { convertMenuData } from '@/utils/menuConverter' @@ -6,13 +5,13 @@ import { convertMenuData } from '@/utils/menuConverter' * 从新的API获取菜单树形数据,并转换为角色管理所需的格式 */ export function getMenuTreeForRole(query?: { terminalType?: string }) { - return http.get('/menu/tree', query).then(res => { + return http.get('/menu/tree', query).then((res) => { // 假设响应格式为 { data: [...菜单数据], success: true, msg: "", code: 200 } - const data = res.data || []; + const data = res.data || [] // 转换菜单数据为角色管理组件需要的格式 - const convertedData = convertMenuData(data); - return convertedData; - }); + const convertedData = convertMenuData(data) + return convertedData + }) } /** @@ -23,31 +22,31 @@ export function getMenuTreeForRole(query?: { terminalType?: string }) { */ export function transformMenusWithPermissions(menus: any[], selectedMenuIds: string[] = []) { // 深拷贝菜单数据,避免修改原始数据 - const result = JSON.parse(JSON.stringify(menus)); - + const result = JSON.parse(JSON.stringify(menus)) + // 递归处理菜单树,添加权限标记 const processMenus = (items: any[]) => { - return items.map(item => { + return items.map((item) => { // 设置选中状态 - item.isChecked = selectedMenuIds.includes(item.id.toString()); - + item.isChecked = selectedMenuIds.includes(item.id.toString()) + // 如果有子菜单,递归处理 if (item.children && item.children.length > 0) { - item.children = processMenus(item.children); + item.children = processMenus(item.children) } - - return item; - }); - }; - - return processMenus(result); + + return item + }) + } + + return processMenus(result) } /** * 获取角色已分配的菜单ID列表 */ export function getRoleMenuIds(roleId: string) { - return http.get(`/role/get-menus/${roleId}`); + return http.get(`/role/get-menus/${roleId}`) } /** @@ -56,6 +55,6 @@ export function getRoleMenuIds(roleId: string) { export function assignRoleMenus(roleId: string, menuIds: string[]) { return http.post('/role/bind-menu', { roleId, - menuIds - }); -} \ No newline at end of file + menuIds, + }) +} diff --git a/src/apis/system/post.ts b/src/apis/system/post.ts index f5954a4..1c71810 100644 --- a/src/apis/system/post.ts +++ b/src/apis/system/post.ts @@ -1,46 +1,46 @@ -import type * as T from './type'; -import http from '@/utils/http'; +import type * as T from './type' +import http from '@/utils/http' -const BASE_URL = '/post'; +const BASE_URL = '/post' /** * 添加岗位 */ export function addPost(data: T.PostAddReq) { - return http.post(BASE_URL, data); + return http.post(BASE_URL, data) } /** * 查询岗位详情 */ export function getPostDetail(postId: string) { - return http.get(`${BASE_URL}/detail/${postId}`); + return http.get(`${BASE_URL}/detail/${postId}`) } /** * 查询岗位列表 */ export function listPost(params?: T.PostPageQuery) { - return http.get(`${BASE_URL}/list`, params); + return http.get(`${BASE_URL}/list`, params) } /** * 分页查询岗位列表 */ export function pagePost(params?: T.PostPageQuery) { - return http.get>(`${BASE_URL}/page`, params); + return http.get>(`${BASE_URL}/page`, params) } /** * 修改岗位 */ export function updatePost(postId: string, data: T.PostUpdateReq) { - return http.put(`${BASE_URL}/${postId}`, data); + return http.put(`${BASE_URL}/${postId}`, data) } /** * 删除岗位 */ export function deletePost(postId: string) { - return http.del(`${BASE_URL}/${postId}`); -} \ No newline at end of file + return http.del(`${BASE_URL}/${postId}`) +} diff --git a/src/apis/system/type.ts b/src/apis/system/type.ts index db59d8d..3292373 100644 --- a/src/apis/system/type.ts +++ b/src/apis/system/type.ts @@ -564,113 +564,113 @@ export interface MessagePageQuery extends MessageQuery, PageQuery { /** 新增菜单请求参数 */ export interface MenuAddReq { - menuName: string; - menuType: string; - orderNum: number; - parentId: string; - perms: string; - terminalType: string; - url: string; - visible: string; + menuName: string + menuType: string + orderNum: number + parentId: string + perms: string + terminalType: string + url: string + visible: string } /** 新菜单树查询参数 */ export interface MenuTreeQuery { - menuName?: string; - terminalType?: string; + menuName?: string + terminalType?: string } /** 新菜单详情响应类型 */ export interface MenuDetailResp { - menuId: string; - menuName: string; - menuType: string; - orderNum: number; - parentId: string; - perms: string; - url: string; - visible: string; + menuId: string + menuName: string + menuType: string + orderNum: number + parentId: string + perms: string + url: string + visible: string } /** 菜单更新请求参数 */ export interface MenuUpdateReq { - menuName: string; - menuType: string; - orderNum: number; - parentId: string; - perms: string; - terminalType: string; - url: string; - visible: string; + menuName: string + menuType: string + orderNum: number + parentId: string + perms: string + terminalType: string + url: string + visible: string } /** 新角色信息请求实体 */ export interface RoleAddReq { - remark: string; - roleCode: string; - roleKey: string; - roleName: string; - status: number; + remark: string + roleCode: string + roleKey: string + roleName: string + status: number } /** 角色信息更新请求实体 */ export interface RoleUpdateReq { - remark: string; - roleCode: string; - roleKey: string; - roleName: string; - status: number; + remark: string + roleCode: string + roleKey: string + roleName: string + status: number } /** 新角色信息响应实体 */ export interface RoleNewResp { - remark: string; - roleCode: string; - roleId: string; - roleKey: string; - roleName: string; - status: string; - isSystem?: boolean; + remark: string + roleCode: string + roleId: string + roleKey: string + roleName: string + status: string + isSystem?: boolean } /** 角色菜单绑定请求 */ export interface RoleBindMenuReq { - menuIds: string[]; - roleId: string; + menuIds: string[] + roleId: string } /** 角色查询参数(新接口) */ export interface RoleNewQuery { - roleName?: string; + roleName?: string } // 岗位相关类型定义 export interface PostVO { - postId: string; - postName: string; - postSort: number; - remark: string; - status: string | number; - createTime?: string; - updateTime?: string; + postId: string + postName: string + postSort: number + remark: string + status: string | number + createTime?: string + updateTime?: string } export interface PostPageQuery { - postName?: string; - page?: number; - size?: number; + postName?: string + page?: number + size?: number } export interface PostAddReq { - postName: string; - postSort: number; - remark: string; - status: number; + postName: string + postSort: number + remark: string + status: number } export interface PostUpdateReq { - postName: string; - postSort: number; - remark: string; - status: number; + postName: string + postSort: number + remark: string + status: number } diff --git a/src/apis/system/user-new.ts b/src/apis/system/user-new.ts index f331dde..1b4d4b5 100644 --- a/src/apis/system/user-new.ts +++ b/src/apis/system/user-new.ts @@ -36,4 +36,4 @@ export function updateUserNew(userId: string, data: T.UserNewUpdateReq) { /** @desc 删除用户信息 */ export function deleteUserNew(userId: string) { return http.del(`${BASE_URL}/${userId}`) -} \ No newline at end of file +} diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index cccb4ea..96592dd 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -39,18 +39,18 @@ const breadcrumbList = computed(() => { if (route.path.startsWith('/redirect/')) { return [] } - + const cloneRoutes = JSON.parse(JSON.stringify(routes)) as RouteLocationMatched[] const obj = findTree(cloneRoutes, (i) => i.path === route.path) - + // 获取当前节点的所有上级节点集合,包含当前节点 const arr = obj ? obj.nodes.filter((item) => item.meta && item.meta.title && item.meta.breadcrumb !== false) : [] - + // 如果有home路由且不是重复的,则添加到开头 - if (home.value && !arr.some(item => item.path === home.value?.path)) { + if (home.value && !arr.some((item) => item.path === home.value?.path)) { return [home.value, ...arr] } - + return arr }) diff --git a/src/components/ImageImport/index.vue b/src/components/ImageImport/index.vue index 97119ee..abf089a 100644 --- a/src/components/ImageImport/index.vue +++ b/src/components/ImageImport/index.vue @@ -19,7 +19,7 @@ :loading="loadingImageSources" /> - + - + - + - + @@ -58,15 +58,15 @@ - + 导入后自动标注 覆盖同名文件 - - + + - +
- + -
+

待导入文件 ({{ fileList.length }})

清空 @@ -133,16 +133,16 @@ @click="removeFile(index)" >
- + -
+

{{ progressText }}

- + -
+
- -
+ +

失败文件列表:

diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue index e14b280..129f6de 100644 --- a/src/components/UserSelect/index.vue +++ b/src/components/UserSelect/index.vue @@ -3,7 +3,7 @@ { tipWords.value = '' proxy.$parent.closeBox() diff --git a/src/hooks/app/useDept.ts b/src/hooks/app/useDept.ts index 947aa2e..cd88dca 100644 --- a/src/hooks/app/useDept.ts +++ b/src/hooks/app/useDept.ts @@ -11,18 +11,18 @@ export function useDept(options?: { onSuccess?: () => void }) { try { loading.value = true const res = await getDeptTree({ deptName }) - + // 处理部门树数据,确保有title字段用于显示 const processDeptData = (data: any[]): TreeNodeData[] => { if (!data || !data.length) return [] - - return data.map(item => ({ + + return data.map((item) => ({ key: item.deptId, - title: item.deptName || '未命名部门', // 将deptName映射为title - children: item.children ? processDeptData(item.children) : [] + title: item.deptName || '未命名部门', // 将deptName映射为title + children: item.children ? processDeptData(item.children) : [], })) } - + deptList.value = processDeptData(res.data || []) options?.onSuccess && options.onSuccess() } finally { diff --git a/src/hooks/app/usePost.ts b/src/hooks/app/usePost.ts index 3a974e9..964a05a 100644 --- a/src/hooks/app/usePost.ts +++ b/src/hooks/app/usePost.ts @@ -2,7 +2,7 @@ import { listPost } from '@/apis/system/post' import type { PostVO } from '@/apis/system/type' export function usePost() { - const postList = ref<{ label: string; value: string }[]>([]) + const postList = ref<{ label: string, value: string }[]>([]) const loading = ref(false) // 获取岗位列表 @@ -24,6 +24,6 @@ export function usePost() { return { postList, loading, - getPostList + getPostList, } -} \ No newline at end of file +} diff --git a/src/hooks/app/useRole.ts b/src/hooks/app/useRole.ts index f2c8388..d565f3f 100644 --- a/src/hooks/app/useRole.ts +++ b/src/hooks/app/useRole.ts @@ -11,16 +11,16 @@ export function useRole(options?: { onSuccess?: () => void }) { try { loading.value = true const res = await fetchRoleList() - + // 将新的角色数据格式转换为表单需要的 LabelValueState 格式 if (res && res.data) { - roleList.value = (res.data || []).map(role => ({ + roleList.value = (res.data || []).map((role) => ({ label: role.roleName, value: role.roleId, - disabled: role.status !== '1' // 假设状态为1表示启用 + disabled: role.status !== '1', // 假设状态为1表示启用 })) } - + options?.onSuccess && options.onSuccess() } finally { loading.value = false diff --git a/src/layout/LayoutDefault.vue b/src/layout/LayoutDefault.vue index 9a34aa6..4743e4a 100644 --- a/src/layout/LayoutDefault.vue +++ b/src/layout/LayoutDefault.vue @@ -19,7 +19,6 @@ import Asider from './components/Asider/index.vue' import Header from './components/Header/index.vue' import Main from './components/Main.vue' import Tabs from './components/Tabs/index.vue' -import GiFooter from '@/components/GiFooter/index.vue' import NoticePopup from '@/views/user/message/components/NoticePopup.vue' import { useAppStore } from '@/stores' import { useDevice } from '@/hooks' diff --git a/src/layout/components/Asider/index.vue b/src/layout/components/Asider/index.vue index 633c881..e1731f4 100644 --- a/src/layout/components/Asider/index.vue +++ b/src/layout/components/Asider/index.vue @@ -19,7 +19,6 @@ @@ -275,7 +275,7 @@ defineExpose({ align-items: center; padding: 16px 20px; border-bottom: 1px solid #e5e7eb; - + h3 { margin: 0; font-size: 16px; @@ -290,11 +290,11 @@ defineExpose({ flex-direction: column; overflow-y: scroll; height: 600px; - + .panel-section { padding: 16px 20px; border-bottom: 1px solid #f3f4f6; - + .section-header { display: flex; justify-content: space-between; @@ -351,4 +351,4 @@ defineExpose({ } } } - \ No newline at end of file + diff --git a/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/DefectDetailsForm.vue b/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/DefectDetailsForm.vue index 0c3cc26..aeb57ba 100644 --- a/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/DefectDetailsForm.vue +++ b/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/DefectDetailsForm.vue @@ -3,10 +3,10 @@

缺陷详情

- +
- +
@@ -15,12 +15,12 @@ - + - +
- +
- + {{ level.name }} - + - - + - + 取消 + + + 保存缺陷 + +
- -
@@ -249,7 +249,7 @@ const getImageUrl = (imagePath: string): string => { justify-content: center; align-items: center; flex-shrink: 0; - + .zoom-text { min-width: 50px; text-align: center; @@ -356,4 +356,4 @@ const getImageUrl = (imagePath: string): string => { } } } - \ No newline at end of file + diff --git a/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/ProjectTree.vue b/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/ProjectTree.vue index d58e5cd..b0804bb 100644 --- a/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/ProjectTree.vue +++ b/src/views/construction-operation-platform/implementation-workflow/data-processing/intelligent-inspection/defect-algorithm/components/ProjectTree.vue @@ -15,10 +15,10 @@ \ No newline at end of file + diff --git a/src/views/enterprise-dashboard/application-data/index.vue b/src/views/enterprise-dashboard/application-data/index.vue index d451903..cd93d18 100644 --- a/src/views/enterprise-dashboard/application-data/index.vue +++ b/src/views/enterprise-dashboard/application-data/index.vue @@ -1,484 +1,481 @@ \ No newline at end of file + diff --git a/src/views/project-management/projects/initiation/index.vue b/src/views/project-management/projects/initiation/index.vue index c4e48c6..ae87bb6 100644 --- a/src/views/project-management/projects/initiation/index.vue +++ b/src/views/project-management/projects/initiation/index.vue @@ -13,16 +13,16 @@ @refresh="search" > - + - + - + - + - + - + @@ -76,19 +76,19 @@ \ No newline at end of file + diff --git a/src/views/project-management/projects/list/components/ProjectTable.vue b/src/views/project-management/projects/list/components/ProjectTable.vue index 14630d4..8a144fc 100644 --- a/src/views/project-management/projects/list/components/ProjectTable.vue +++ b/src/views/project-management/projects/list/components/ProjectTable.vue @@ -59,9 +59,9 @@ 查看 - 进入 @@ -73,7 +73,6 @@ \ No newline at end of file + diff --git a/src/views/project-management/projects/personnel-distribution/index.vue b/src/views/project-management/projects/personnel-distribution/index.vue index f549f6e..b9eddf1 100644 --- a/src/views/project-management/projects/personnel-distribution/index.vue +++ b/src/views/project-management/projects/personnel-distribution/index.vue @@ -5,9 +5,9 @@ - @@ -17,9 +17,9 @@ - @@ -30,8 +30,8 @@ - - + 查询 - + 重置 @@ -57,23 +57,23 @@

{{ currentProjectTitle }} 人员分布

- + 分布图 - + 分布表 - + 甘特图 - + 新增安排 - - + + 导出
@@ -85,14 +85,14 @@
角色分布
-
- {{ role.name }} @@ -106,7 +106,7 @@ - +
@@ -118,16 +118,16 @@ @@ -275,4 +275,4 @@ defineExpose({ :deep(.arco-select-view-multiple) { min-height: 32px; } - \ No newline at end of file + diff --git a/src/views/project-management/projects/quality/index.vue b/src/views/project-management/projects/quality/index.vue index 521441d..ed6720e 100644 --- a/src/views/project-management/projects/quality/index.vue +++ b/src/views/project-management/projects/quality/index.vue @@ -1,18 +1,18 @@ @@ -249,7 +249,7 @@ const getImageUrl = (imagePath: string): string => { justify-content: center; align-items: center; flex-shrink: 0; - + .zoom-text { min-width: 50px; text-align: center; @@ -356,4 +356,4 @@ const getImageUrl = (imagePath: string): string => { } } } - \ No newline at end of file + diff --git a/src/views/project-operation-platform/data-processing/industrial-image/components/ProjectTree.vue b/src/views/project-operation-platform/data-processing/industrial-image/components/ProjectTree.vue index d58e5cd..b0804bb 100644 --- a/src/views/project-operation-platform/data-processing/industrial-image/components/ProjectTree.vue +++ b/src/views/project-operation-platform/data-processing/industrial-image/components/ProjectTree.vue @@ -15,10 +15,10 @@ \ No newline at end of file + diff --git a/src/views/project/TurbineGrid.vue b/src/views/project/TurbineGrid.vue index 88d4b31..27f75f4 100644 --- a/src/views/project/TurbineGrid.vue +++ b/src/views/project/TurbineGrid.vue @@ -3,39 +3,39 @@ import { computed } from 'vue' import TurbineCard from './TurbineCard.vue' interface Turbine { - id: number - turbineNo: string - status: 0 | 1 | 2 - lat?: number - lng?: number + id: number + turbineNo: string + status: 0 | 1 | 2 + lat?: number + lng?: number } const props = defineProps<{ - modelValue: Turbine[] + modelValue: Turbine[] }>() const emit = defineEmits<{ - (e: 'update:modelValue', v: Turbine[]): void - (e: 'map', turbine: Turbine): void + (e: 'update:modelValue', v: Turbine[]): void + (e: 'map', turbine: Turbine): void }>() const turbines = computed({ - get: () => props.modelValue, - set: v => emit('update:modelValue', v) + get: () => props.modelValue, + set: (v) => emit('update:modelValue', v), }) function updateTurbine(index: number, t: Turbine) { - const arr = [...turbines.value] - arr.splice(index, 1, t) - turbines.value = arr + const arr = [...turbines.value] + arr.splice(index, 1, t) + turbines.value = arr } \ No newline at end of file + + + + + + + diff --git a/src/views/project/budget/components/BudgetApplyModal.vue b/src/views/project/budget/components/BudgetApplyModal.vue index e9208cb..b86498a 100644 --- a/src/views/project/budget/components/BudgetApplyModal.vue +++ b/src/views/project/budget/components/BudgetApplyModal.vue @@ -12,9 +12,9 @@ >
- @@ -31,7 +31,7 @@

申请预算项

- + - + - + - + - + - + - +
@@ -118,8 +118,8 @@
- @@ -379,7 +379,7 @@ const handleCancel = () => { \ No newline at end of file + diff --git a/src/views/project/budget/components/BudgetAuditModal.vue b/src/views/project/budget/components/BudgetAuditModal.vue index 6182605..7a5da65 100644 --- a/src/views/project/budget/components/BudgetAuditModal.vue +++ b/src/views/project/budget/components/BudgetAuditModal.vue @@ -11,9 +11,9 @@ >
- @@ -30,7 +30,7 @@

申请预算项

- + {{ record.budgetAmount.toFixed(2) }} - + - +
合计: @@ -68,8 +68,8 @@

审核意见

- \ No newline at end of file + diff --git a/src/views/service/lightning-detection/index.vue b/src/views/service/lightning-detection/index.vue index c89966e..60ef0b2 100644 --- a/src/views/service/lightning-detection/index.vue +++ b/src/views/service/lightning-detection/index.vue @@ -13,16 +13,16 @@ @refresh="search" > - + - + - + - + @@ -63,18 +63,18 @@ \ No newline at end of file + diff --git a/src/views/system-resource/device-management/components/DeviceAddModal.vue b/src/views/system-resource/device-management/components/DeviceAddModal.vue deleted file mode 100644 index f7b8dcb..0000000 --- a/src/views/system-resource/device-management/components/DeviceAddModal.vue +++ /dev/null @@ -1,263 +0,0 @@ - - - - - diff --git a/src/views/system-resource/device-management/components/DeviceModal.vue b/src/views/system-resource/device-management/components/DeviceModal.vue new file mode 100644 index 0000000..d958205 --- /dev/null +++ b/src/views/system-resource/device-management/components/DeviceModal.vue @@ -0,0 +1,991 @@ + + + + + diff --git a/src/views/system-resource/device-management/detail.vue b/src/views/system-resource/device-management/detail.vue new file mode 100644 index 0000000..e740ae2 --- /dev/null +++ b/src/views/system-resource/device-management/detail.vue @@ -0,0 +1,313 @@ + + + + + diff --git a/src/views/system-resource/device-management/index.vue b/src/views/system-resource/device-management/index.vue index 1131622..c1bb46c 100644 --- a/src/views/system-resource/device-management/index.vue +++ b/src/views/system-resource/device-management/index.vue @@ -1,337 +1,785 @@ - - \ No newline at end of file + diff --git a/src/views/system-resource/information-system/software-management/index.vue b/src/views/system-resource/information-system/software-management/index.vue index a52537d..ff487df 100644 --- a/src/views/system-resource/information-system/software-management/index.vue +++ b/src/views/system-resource/information-system/software-management/index.vue @@ -13,16 +13,16 @@ @refresh="search" > - + - + - + - + - + - + \ No newline at end of file + diff --git a/src/views/system/post/PostDetailDrawer.vue b/src/views/system/post/PostDetailDrawer.vue index 707fc49..ea43f31 100644 --- a/src/views/system/post/PostDetailDrawer.vue +++ b/src/views/system/post/PostDetailDrawer.vue @@ -6,10 +6,10 @@ :footer="false" unmount-on-close > - >([]) +const detailData = ref>([]) // 获取详情 const getDetail = async (id: string) => { @@ -63,4 +63,4 @@ const onDetail = async (id: string) => { defineExpose({ onDetail, }) - \ No newline at end of file + diff --git a/src/views/system/post/index.vue b/src/views/system/post/index.vue index 9a924e0..e8a06da 100644 --- a/src/views/system/post/index.vue +++ b/src/views/system/post/index.vue @@ -45,11 +45,11 @@ - \ No newline at end of file + diff --git a/src/views/system/role/components/Permission.vue b/src/views/system/role/components/Permission.vue index 2473372..2eebd90 100644 --- a/src/views/system/role/components/Permission.vue +++ b/src/views/system/role/components/Permission.vue @@ -57,12 +57,12 @@