3.6 KiB
3.6 KiB
2026-04-28 工作记录
搜索页面条码识别 bug 修复
- 修复搜索页面
res.data.orders→res.data.all_orders(工单和采购订单列表API返回字段名均为all_orders) - 搜索页添加条码格式识别:
wo:ID→工单、item:ID→物品、warehouse:ID→容器、po:ID→采购订单 - 容器跳转用
uni.$emit('barcode-navigate-container')+switchTab(tabBar页面不能 navigateTo) - 搜索页添加扫码按钮(📷)
- App端扫码:
uni.getSetting仅小程序支持,App端需用plus.android检查权限 - 条件编译:
#ifdef APP-PLUS、#ifdef MP-WEIXIN、#ifdef H5分平台处理
download_app 改造
download.php:改为扫描__DIR__/../根目录下的所有.apk,用filemtime()取最新,不再依赖文件名格式index.php:版本信息同时显示文件名和修改时间
订单详情页打印功能
order-detail.vue右上角添加打印按钮 🖨- 点击后用 LcPrinter 插件打印:标题(加粗大字)/ 备注 / 状态 / 创建日期 / 条形码
po:ID(height=4,barcodeType=73) - 条件编译
#ifdef APP-PLUS,非 App 端 toast 提示不支持 - 订单详情页补充
order.Styles(样式)字段显示,插在"链接"和"备注"之间,与 web 端对齐 - 同步修正打印函数第三行:原打印"状态"→改为打印
Styles(样式)
打印初始化代码补全
- 在以下四个页面的打印函数中统一加入初始化代码(
initPrinter+setConcentration+setLineSpacing),参照printer-test.vue写法:order-detail.vue→printOrder()show-workorder.vue→printWorkOrder()item-detail.vue→printItem()warehouse.vue→printContainer()
用户登录失败日志表
apiUsers.go新增TabUserLoginFailLog表结构:记录username、userID、IP、userAgent、reason(password_error / user_not_found)、count(连续失败次数)、created_at、updated_atInitUsersRouter中新增AutoMigrate(&TabUserLoginFailLog{})- 登录成功时清除该用户失败记录;密码错误和用户不存在时调用
recordLoginFail()记录/更新失败日志(24小时内累计次数) recordLoginFail()在TabUserLoginFailLog结构体后定义
apiWarehouse.go 查重完善
add_container接口:添加同层级容器 Title 查重(parent_id+title+deleted_at IS NULL),重复返回container_title_existadd_item接口:已有查重逻辑(Name+SerialNumber)保持不变
完善 updateSysAdminsCash 函数
- 原函数为空,现实现:
- 查询
admins用户组 ID - 查询该组所有成员的
TabUserGroupBinds记录 - 提取所有
UserID更新到sysAdmins缓存切片 - 组不存在或查询失败时清空缓存
- 查询
Web 前端系统管理员入口
- 后端
getinfo接口返回isSysAdmin布尔值(不再暴露完整管理员列表) - 新建
apiSysAdmin.go文件,专门处理系统管理员接口 - 后端新增
POST /admin/sysadmins接口(位于 apiSysAdmin.go),仅系统管理员可访问,返回完整sysAdmins数组 - 前端
userStore:isSysAdmin改为 ref,直接从后端获取 AppHeader.vue用户菜单:当isSysAdmin为 true 时显示「系统管理」入口(琥珀色盾牌图标)- 新建
SysAdminView.vue:4 个标签页占位符(用户管理、用户组、登录日志、系统配置),页面内调用authApi.sysAdmins()获取管理员列表 - 路由
/admin:添加requireSysAdmin元信息,路由守卫拦截非管理员访问