2.8 KiB
2.8 KiB
2026-06-04
user/index.vue - 人脸列多图片展示
- 将人脸列从单张
image-preview改为多张el-image缩略图布局 - 新增
faceUrls()工具函数,将逗号分隔的faceAddr拆分为数组 - 每张缩略图 40x40,flex 横排,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-switch,active-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=true、type=flvdestroyPlayer(): 弹窗关闭时销毁播放器,防止内存泄漏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/userName、changeUserStatus)改为 FamilyVO 字段(parentName/id)和changeFamilyStatus- 操作失败时自动回滚开关状态