Files
ops2/.workbuddy/memory/2026-04-29.md
T
2026-04-29 14:52:42 +08:00

4.0 KiB
Raw Blame History

2026-04-29 工作日志

  • 修复 SysAdminView.vue 第 849 行 <img ... /> 占位符 bug(上一轮 i18n 修改误删内容),恢复为 <img :src="usersStore.getAvatarUrlFromUserID(adminId)" class="w-5 h-5 rounded-full" alt="avatar" />
  • en.jsonmessage 节点补充缺失的 "sysadmin": "System Admin" 翻译
  • 全面重新分析代码结构,更新并精简 MEMORY.md(整合后端 main.go 启动流程、apiSysAdmin 完整路由、前端路由守卫逻辑、stores/user.js isSysAdmin 机制等)
  • 将 SysAdminView.vue 拆分为三个子组件:src/views/sysadmin/UsersTab.vue(用户管理+详情弹窗)、GroupsTab.vue(用户组+添加/移除成员)、LogsTab.vue(登录失败日志);父组件改用 v-show 保持子组件挂载,UsersTab 自身 onMounted 加载数据,Groups/Logs 由父组件 watch(activeTab) 懒加载
  • 将 SysAdminView.vue 整体移入 src/views/sysadmin/ 目录,并更新 router/index.js 中的引用路径为 @/views/sysadmin/SysAdminView.vue
  • 客户模块权限改造:移除 /getinfo 返回的 isCustomerAdmin,改为按记录返回 edit 权限标记
    • 后端 apiCustomer.go:新增 canModifyCustomer() 函数(创建者或管理员可编辑),/list 每条记录附加 edit 字段,/get 返回 canModify/update/delete 改用 canModifyCustomer 校验权限
    • 后端 apiUsers.go:移除 isCustomerAdmin 返回
    • 前端 stores/user.js:移除 isCustomerAdmin 状态
    • 前端 CustomerList.vue:改用 customer.edit 控制编辑/删除按钮显示,新增按钮始终显示(后端会校验权限)
  • 客户称呼选项调整:移除"夫人"/"博士",新增"单位"作为默认选项
    • CustomerFormModal.vuetitleOptions 改为 ['Unit', 'Mr', 'Ms'],默认值改为 'Unit'
    • zh-CN.json:新增 salutation_unit: "单位",移除 salutation_mrs/salutation_dr
    • en.json:新增 salutation_unit: "Unit",移除 salutation_mrs/salutation_dr
    • 后端 apiCustomer.goTitle 字段注释改为 称呼:Unit/Mr/Ms
  • 客户表单字段顺序调整:姓在前(必填),名在后(非必填)
    • CustomerFormModal.vue:表单 grid 改为 姓 → 名,移除 first_name 必填验证
    • CustomerList.vue:列表显示改为 last_name + first_name 顺序
  • 创建客户详情页 CustomerDetail.vue
    • 显示客户基本信息(姓名、称呼、创建时间、创建者)
    • 显示电话列表(含主号码标记)
    • 显示邮箱列表(含主邮箱标记)
    • 显示单位列表(含主单位标记)
    • 编辑按钮(仅 canModify 为 true 时显示)
    • 返回按钮
  • 创建客户编辑页 CustomerEdit.vue(包装 CustomerFormModal
  • 添加路由:/customer/detail/:id/customer/edit/:id
  • CustomerList.vue:姓名改为可点击链接,跳转到详情页
  • i18n:添加 common.backcustomer.detail_titlecustomer.basic_infocustomer.created_bycustomer.not_found 等翻译
  • 工单-客户关联功能
    • binds.go: 新增 TabWorkOrderCustomerBind 关联表,在 BindsInit() 中注册
    • apiWorkOrder.go: /get API 返回 linkedCustomers;新增 /link_customer/unlink_customer API
    • ShowWorkOrder.vue: 详情页显示关联客户,支持搜索/关联/解除关联客户
    • work_order.js: 添加 linkCustomerunlinkCustomer API 方法
    • AddEditWorkOrder.vue: 新增工单时支持搜索并关联客户
    • i18n: 添加 linked_customerlinked_customerslink_customer_placeholder 等翻译
  • 工单编辑页支持关联物品和客户(多选)
    • AddEditWorkOrder.vue: 移除 v-if="!isEdit" 限制,编辑模式也显示关联物品/客户搜索框
    • AddEditWorkOrder.vue: 编辑模式加载时回填 selectedItemsselectedCustomers
    • AddEditWorkOrder.vue: 编辑提交时发送 item_idscustomer_ids
    • apiWorkOrder.go: /update 接口新增 ItemIDsCustomerIDs 字段,重建物品/客户关联绑定