Files
dm-ui/src/views/app/.workbuddy/memory/2026-06-04.md
2026-07-01 10:18:30 +08:00

2.8 KiB
Raw Blame History

2026-06-04

user/index.vue - 人脸列多图片展示

  • 将人脸列从单张 image-preview 改为多张 el-image 缩略图布局
  • 新增 faceUrls() 工具函数,将逗号分隔的 faceAddr 拆分为数组
  • 每张缩略图 40x40flex 横排gap 4px
  • 通过 preview-src-list + initial-index 实现点击任意一张可轮播预览全部
  • 添加 hover 放大动效和图片加载失败的占位 icon

user/index.vue - 用户账号列展示优化

  • "用户账号"列改为优先展示手机号、其次邮箱、最后 userName 的降级逻辑
  • 模板表达式:phonenumber || email || userName || '-'

user/index.vue - 仿 sysuser 添加重置密码

  • API: d:\code\plus-ui\src\api\app\user\index.ts 新增 resetUserPwd(userId, password)PUT /app/user/resetPwd
  • View: 操作列新增"重置密码"按钮Key 图标),权限 app:user:resetPwd
  • handleResetPwd: ElMessageBox.prompt 弹窗输入新密码,校验 5-20 位、禁非法字符 <>"'|\
  • 成功提示包含新密码明文

user/index.vue - 账号状态改为 el-switch 开关

  • API: d:\code\plus-ui\src\api\app\user\index.ts 新增 changeUserStatus(userId, status)PUT /app/user/changeStatus
  • 状态列从纯文本改为 el-switchactive-value="0"(启用)、inactive-value="1"(停用)
  • handleStatusChange: 切换前弹确认框,操作失败时回滚开关状态

message/index.vue - 视频地址改为在线播放

  • 视频地址列从纯文本改为"播放"按钮(VideoPlay 图标 + 点击触发 handlePlayVideo
  • 新增视频播放弹窗:<video> 标签 + controls + autoplay,宽度 100%,最大高度 60vh
  • videoDialog: { visible: boolean; url: string },关闭弹窗时清空 url
  • 无视频时显示 -

message/index.vue - 视频地址改为在线播放ZLMediaKit HTTP-FLV

  • 安装 xgplayer + xgplayer-flv 依赖npm install --save
  • 视频地址列从纯文本改为"播放"按钮(VideoPlay 图标)
  • 点击按钮弹出视频播放弹窗720px 宽),内嵌 xgplayer 实例
  • initPlayer(url): 创建 xgplayer配置 flv.mediaDataSource.isLive=truetype=flv
  • destroyPlayer(): 弹窗关闭时销毁播放器,防止内存泄漏
  • nextTick 延迟初始化确保 DOM 渲染完毕
  • 播放器容器 CSS: 60vh 高度、黑色背景、圆角、overflow hidden

family/index.vue - 状态改为 el-switch 开关

  • API: d:\code\plus-ui\src\api\app\family\index.ts 新增 changeFamilyStatus(id, status)PUT /app/family/changeStatus
  • 移除重复的纯文本"账号状态"列,保留 el-switch 列
  • handleStatusChange: 修复从错误引用(phonenumber/email/userNamechangeUserStatus)改为 FamilyVO 字段(parentName/id)和 changeFamilyStatus
  • 操作失败时自动回滚开关状态