学习进度条
今日所花时间:一小时
今日代码量:100行
博客量:一篇
了解到的知识点:
项目概述
主要实现了检测计划管理功能模块。该模块包含检测计划的创建、编辑、删除、查询以及生成工单等核心功能
核心技术栈
1. Vue 3 组合式API
import { ref, computed } from 'vue'
- ref: 用于创建响应式数据,如
const plans = ref([]) - computed: 创建计算属性,如
const canGenerateOrder = computed(() => {...}) - setup语法糖: 使用
<script setup>简化组件编写
2. Element Plus组件库
- 表格组件: 用于展示检测计划列表
- 表单组件: 用于计划创建和编辑
- 对话框和抽屉组件: 用于表单展示
- 消息提示组件:
ElMessage和ElMessageBox用于用户交互反馈 - 步骤条组件: 用于工单生成流程引导
3. 状态管理
import { useTokenStore } from '@/stores/token'
- 使用Pinia进行全局状态管理
- 存储和获取用户token等全局数据
4. 网络请求
import { getPlanListService, deletePlanService, addPlanService } from '@/api/Device.js'
import request from '@/utils/request'
- 封装axios请求
- API服务模块化管理
- 统一的请求和响应处理
5. 自定义组件
- StayTimeDetector: 停留时间检测组件
- FaceRecognition: 人脸识别验证组件
关键功能实现
1. 检测计划管理
// 获取检测计划列表
const getDeviceLCheckList = async () => {
let params = {
pageNum: pageNum.value,
pageSize: pageSize.value,
planName: searchKey.value ? searchKey.value : null,
deviceType: deviceType.value ? deviceType.value : null,
status: planStatus.value ? planStatus.value : null
}
let result = await getPlanListService(params)
total.value = result.data.total;
plans.value = result.data.items;
}
- 分页查询
- 条件过滤
- 状态管理
2. 表单验证
// 表单验证规则
const rules = {
planName: [
{ required: true, message: '请输入计划名称', trigger: 'blur' },
{ min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }
],
deviceType: [
{ required: true, message: '请选择设备类型', trigger: 'change' }
]
}
- 必填验证
- 长度验证
- 自定义验证规则
3. 工单生成流程
const openGenerateOrderDialog = async (plan) => {
// 检查计划状态
if (plan.status === 0) {
ElMessage.warning('停用状态的计划不能生成工单')
return
}
currentPlan.value = {
...plan,
planCode: typeof plan.planCode === 'string' ? parseInt(plan.planCode.replace(/\D/g, '')) : plan.planCode
}
// 重置表单和验证状态
resetOrderForm()
// 获取设备列表
await getDevices()
generateOrderDialogVisible.value = true
}
- 多步骤验证流程
- 人脸识别集成
- 停留时间检测
学到的知识点
-
Vue 3响应式系统: 深入理解了ref和reactive的使用场景和区别
-
组合式API优势: 逻辑关注点集中,代码更易组织和复用
-
Element Plus高级用法:
- 表格自定义列模板
- 表单复杂验证规则
- 步骤条控制流程
-
异步编程实践:
- async/await处理异步操作
- 错误处理和用户反馈
-
组件通信:
- 父子组件props/emit
- 通过ref调用子组件方法
- 自定义事件处理
-
状态管理策略:
- 何时使用本地状态
- 何时使用全局状态
- 状态持久化考虑
-
安全验证流程:
- 人脸识别集成
- 操作权限控制
- 敏感操作确认
开发经验总结
-
API封装的重要性: 将API调用统一管理,便于维护和修改
-
表单处理最佳实践:
- 分离表单数据模型
- 统一验证逻辑
- 清晰的提交处理
-
用户体验优化:
- 操作反馈及时
- 禁用状态明确
- 流程引导清晰
-
代码组织技巧:
- 相关逻辑集中
- 工具函数提取
- 组件合理拆分
-
错误处理策略:
- 网络错误捕获
- 用户友好提示
- 失败状态恢复
后续优化方向
-
性能优化:
- 列表虚拟滚动
- 请求防抖
- 数据缓存
-
功能增强:
- 计划模板功能
- 批量操作支持
- 高级搜索功能
-
代码质量:
- TypeScript迁移
- 单元测试覆盖
- E2E测试添加
通过这次开发实践,我对Vue 3的现代前端开发有了更深入的理解,特别是在复杂表单处理和分步流程控制方面积累了宝贵经验。Element Plus框架的强大功能也大大提升了开发效率,使得能够快速构建出功能完善且用户体验良好的管理界面。

浙公网安备 33010602011771号