【实习】数字营销系统 银行经理端(interact_bank)前端 Vue 移动端页面的 UI 重构与优化

实习日报 - 2026年2月5日-6日

工作内容概述

今日主要完成了银行互动营销系统(interact_bank)前端 Vue 移动端页面的 UI 重构与优化工作。


一、任务列表页面优化 (taskList.vue)

1. 交互改进

  • 移除"查看详情"按钮,改为点击整个列表项弹出详情抽屉
  • 添加 showDetail() 方法实现点击查看详情功能
  • 保留"扫码核销"按钮不变,使用 @click.stop 阻止事件冒泡

2. 布局重构

  • 使用 Vant 组件 (van-cell-group, van-cell) 替代自定义 div 布局
  • 采用紧凑的 cell 布局:标题 (#title) + 多行信息 (#label) + 右侧状态 (#value)
  • 添加"任务详情"提示行,带右箭头图标
  • 删除约 80 行自定义 CSS,代码更简洁

3. 结构修复

  • 修复 van-cell-group 嵌套结构问题
  • "任务列表"标题独立为自闭合标签
  • 每个任务卡片独立,添加 10px 间距区分

二、活动详情页面优化 (basicInfo.vue)

变更内容

  • 使用 van-cell#title#label#value 插槽合并展示活动信息
  • 标题加粗显示在左上角,状态显示在右上角
  • 归属、开始/结束时间、预算合并在 label 区域
  • 添加 v-if="data" 防止数据未加载时报错

三、首页活动列表优化 (home.vue)

变更内容

  • 使用 van-cell-group inset + van-cell 替代自定义 div
  • 使用 is-link 属性自带右箭头
  • 标题、时间、预算信息紧凑展示在一个 cell 中
  • 删除了 70+ 行自定义 CSS

四、中奖记录页面优化 (participants.vue)

变更内容

  • 使用 van-cell-group inset + van-cell 紧凑布局
  • 标题(奖品详情)显示在左上角,状态显示在右上角
  • 中奖金额、奖品类型、订单ID、手机号合并在 label 区域
  • 删除了 80 行自定义 CSS,代码从 135 行减少到约 40 行

五、页面切换问题修复 (activeInfo.vue)

问题描述

切换底部导航栏后再回到"活动信息"tab,活动详情丢失,只显示任务列表

解决方案

使用 sessionStorage 保存 activityId

javascript 复制代码
computed: {
    activityId() {
        const queryId = this.$route.query.activityId;
        if (queryId) {
            sessionStorage.setItem('activityId', queryId);
            return queryId;
        }
        return sessionStorage.getItem('activityId');
    }
}

技术总结

技术点 说明
Vant 组件 van-cell-group, van-cell, van-nav-bar, van-field, van-button
公司组件 z-list, z-action, z-dict, z-money, z-form
布局方式 使用 cell 的 #title#label#value 插槽实现紧凑布局
状态保存 sessionStorage 保存页面间共享数据

代码精简统计

文件 修改前行数 修改后行数 减少
home.vue ~123 行 ~46 行 -77 行
participants.vue ~135 行 ~40 行 -95 行
taskList.vue ~241 行 ~144 行 -97 行

总计减少约 270 行代码,主要是自定义 CSS 样式。


遇到的问题与解决

  1. 微信 JS SDK 报错 (Cannot read properties of undefined (reading 'send'))

    • 原因:本地浏览器环境无微信 bridge 接口
    • 结论:正常现象,部署到钉钉/微信移动端后不会报错
  2. 页面白屏 (Cannot read properties of undefined (reading 'describe'))

    • 原因:data 未加载时就访问属性
    • 解决:添加 v-if="data" 条件判断
  3. activityId 丢失

    • 原因:切换 tab 后 URL query 参数丢失
    • 解决:使用 sessionStorage 保存恢复
相关推荐
咪库咪库咪12 分钟前
Vue3-生命周期
前端
莪_幻尘39 分钟前
你的 AI Skill 越多越蠢?Token 上下文爆炸的求生指南
前端·ai编程
lichenyang4531 小时前
从 has.echo 到异步 API 注册表:一次 ASCF API 回调不触发的排查复盘
前端
林瞅瞅1 小时前
Nuxt3 项目部署 Nginx 防盗链后特定 JS 文件 403 问题修复方案
前端
kyriewen2 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
一颗奇趣蛋2 小时前
Web 视频开发完全指南:从入门到精通
前端
非洲农业不发达2 小时前
windows终端体验大升级,让你拥有macos级别的美化
前端·后端
妙码生花2 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十七):登录接口完善,登录页接口整合,解决跨域
前端·后端·ai编程
唐诗2 小时前
改 3 行配置,我的 Tauri dev 冷启动从 100 秒干到 4 秒
前端·客户端
SmartBoyW3 小时前
深入ECMAScript规范:彻底搞懂JS隐式类型转换与底层ToPrimitive机制
前端·javascript