Files
ops2/.workbuddy/memory/2026-04-28.md
T
2026-04-28 18:13:44 +08:00

3.5 KiB
Raw Blame History

2026-04-28 工作记录

搜索页面条码识别 bug 修复

  • 修复搜索页面 res.data.ordersres.data.all_orders(工单和采购订单列表API返回字段名均为 all_orders
  • 搜索页添加条码格式识别:wo:ID→工单、item:ID→物品、warehouse:ID→容器、po:ID→采购订单
  • 容器跳转用 uni.$emit('barcode-navigate-container') + switchTabtabBar页面不能 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:IDheight=4barcodeType=73
  • 条件编译 #ifdef APP-PLUS,非 App 端 toast 提示不支持
  • 订单详情页补充 order.Styles(样式)字段显示,插在"链接"和"备注"之间,与 web 端对齐
  • 同步修正打印函数第三行:原打印"状态"→改为打印 Styles(样式)

打印初始化代码补全

  • 在以下四个页面的打印函数中统一加入初始化代码(initPrinter + setConcentration + setLineSpacing),参照 printer-test.vue 写法:
    • order-detail.vueprintOrder()
    • show-workorder.vueprintWorkOrder()
    • item-detail.vueprintItem()
    • warehouse.vueprintContainer()

用户登录失败日志表

  • apiUsers.go 新增 TabUserLoginFailLog 表结构:记录 usernameuserIDIPuserAgentreasonpassword_error / user_not_found)、count(连续失败次数)、created_atupdated_at
  • InitUsersRouter 中新增 AutoMigrate(&TabUserLoginFailLog{})
  • 登录成功时清除该用户失败记录;密码错误和用户不存在时调用 recordLoginFail() 记录/更新失败日志(24小时内累计次数)
  • recordLoginFail()TabUserLoginFailLog 结构体后定义

apiWarehouse.go 查重完善

  • add_container 接口:添加同层级容器 Title 查重(parent_id + title + deleted_at IS NULL),重复返回 container_title_exist
  • add_item 接口:已有查重逻辑(Name + SerialNumber)保持不变

完善 updateSysAdminsCash 函数

  • 原函数为空,现实现:
    1. 查询 admins 用户组 ID
    2. 查询该组所有成员的 TabUserGroupBinds 记录
    3. 提取所有 UserID 更新到 sysAdmins 缓存切片
    4. 组不存在或查询失败时清空缓存

Web 前端系统管理员入口

  • 后端 getinfo 接口返回 isSysAdmin 布尔值(不再暴露完整管理员列表)
  • 后端新增 POST /users/sysadmins 接口,仅系统管理员可访问,返回完整 sysAdmins 数组
  • 前端 userStoreisSysAdmin 改为 ref,直接从后端获取
  • AppHeader.vue 用户菜单:当 isSysAdmin 为 true 时显示「系统管理」入口(琥珀色盾牌图标)
  • 新建 SysAdminView.vue:4 个标签页占位符(用户管理、用户组、登录日志、系统配置),页面内调用 authApi.sysAdmins() 获取管理员列表
  • 路由 /sysadmin:添加 requireSysAdmin 元信息,路由守卫拦截非管理员访问