【实习】数字营销系统 银行经理端(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 保存恢复
相关推荐
徐小夕1 小时前
JitWord Office预览引擎:如何用Vue3+Node.js打造丝滑的PDF/Excel/PPT嵌入方案
前端·vue.js·github
晴殇i1 小时前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
孟陬1 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
BER_c1 小时前
前端权限校验最佳实践:一个健壮的柯里化工具函数
前端·javascript
想用offer打牌1 小时前
一站式了解四种限流算法
java·后端·go
兆子龙1 小时前
别再用 useState / data 管 Tabs 的 activeKey 了:和 URL 绑定才香
前端·架构
sudo_jin1 小时前
前端包管理器演进史:为什么 npm 之后,Yarn 和 pnpm 成了新宠?
前端·npm
华仔啊2 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java
叁两2 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
golang学习记3 小时前
GitLens 十大神技:彻底改变你在 VS Code 中的 Git 工作流
前端·后端·visual studio code