当前位置: 首页 > news >正文

前端违规页面车主信息优化说明

📋 概述

根据后端接口的优化,前端违规页面现在支持区分三种车主类型:

  • 本地车主 (ownerType: 'local') - 在违规记录中只有 owner_id
  • 月票车主 (ownerType: 'monthly') - 在违规记录中只有 month_ticket_id
  • 预约车辆 (ownerType: 'unknown') - 在违规记录中既没有 owner_id 也没有 month_ticket_id

🔧 修改内容

1. 接口数据结构适配

后端响应示例
{"severity": "moderate","ownerType": "monthly","isNewEnergy": 0,"ownerPhone": "13904656840","parkName": "四季上东","description": "车牌被遮挡,无法正常识别","remark": "车牌被遮挡,无法正常识别","plateNumber": "黑AFB2588","photos": "[\"http://tmp/55l6JaQMnDYB21f2425524048d53aa71cdbebf23edee.png\"]","createdAt": 1755330566000,"monthTicketName": "四季上东二期","violationType": "遮挡车牌","appointmentTime": "2025-08-16 07:49:26","ownerName": "王嘉诚15-3-3901","statusText": "待处理","monthTicketStatus": 1,"location": "测试位置","id": 23,"ownerAddress": "四季上东停车场月票车主","status": "pending"
}
前端数据映射
// 在 loadRealtimeViolations 方法中
this.realtimeRecords = records.map(item => ({id: item.id,plateNumber: item.plateNumber || item.plate_number,violationType: item.violationType || item.violation_type,// ... 基础字段 ...// 新增:车主类型相关信息ownerType: item.ownerType || 'unknown',// 月票车主专属信息monthTicketName: item.monthTicketName || '',parkName: item.parkName || '',monthTicketStatus: item.monthTicketStatus || 0,// 本地车主专属信息community: item.community || '',creditScore: item.creditScore || null,// ... 其他字段 ...
}));

2. 界面显示优化

车主类型标识
  • 本地车主: 🏠 绿色标签,显示 "本地车主"
  • 月票车主: 🎫 蓝色标签,显示 "月票车主"
  • 预约车辆: 🚗 橙色标签,显示 "预约车辆"
车主信息显示逻辑
// 获取车主地址文本
getOwnerAddressText(car) {if (car.ownerType === 'monthly') {return car.parkName ? `${car.parkName}月票车主` : '未知车场';} else if (car.ownerType === 'local') {return car.address || '未知地址';} else {return '预约访客车辆';}
}

3. 专属信息显示

月票车主专属信息
  • 月票名称
  • 车场名称
  • 月票状态(有效/无效)
<view v-if="car.ownerType === 'monthly'" class="monthly-info"><view class="info-row"><view class="info-item"><text class="label">月票名称</text><text class="value">{{ car.monthTicketName || '未知' }}</text></view><view class="info-item"><text class="label">车场名称</text><text class="value">{{ car.parkName || '未知' }}</text></view></view><view class="info-row"><view class="info-item"><text class="label">月票状态</text><view class="status-indicator" :class="car.monthTicketStatus === 1 ? 'active' : 'inactive'"><text class="status-text">{{ car.monthTicketStatus === 1 ? '有效' : '无效' }}</text></view></view></view></view>
本地车主专属信息
  • 小区名称
  • 信用分数
<view v-if="car.ownerType === 'local'" class="local-owner-info"><view class="info-row"><view class="info-item" v-if="car.community"><text class="label">小区</text><text class="value">{{ car.community }}</text></view><view class="info-item" v-if="car.creditScore"><text class="label">信用分数</text><text class="value score" :class="getCreditScoreClass(car.creditScore)">{{ car.creditScore }}</text></view></view></view>
预约车辆信息
  • 显示提示文本:该车辆为预约访客车辆或无车主信息
<view v-if="car.ownerType === 'unknown' || !car.ownerType" class="visitor-info"><view class="info-row"><text class="visitor-tip">该车辆为预约访客车辆或无车主信息</text></view></view>

4. 样式设计

车主类型标签样式
.type-tag.type-local {background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);color: white;
}.type-tag.type-monthly {background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);color: white;
}.type-tag.type-visitor {background: linear-gradient(135deg, #FF9800 0%, #F57C00 100%);color: white;
}
信用分数颜色区分
.score.score-excellent { background: #4CAF50; } /* 90+ 优秀 */
.score.score-good { background: #8BC34A; }      /* 80-89 良好 */
.score.score-normal { background: #FF9800; }    /* 70-79 一般 */
.score.score-poor { background: #F44336; }      /* <70 较差 */
月票状态指示器
.status-indicator.active {background: #4CAF50;color: white;
}.status-indicator.inactive {background: #F44336;color: white;
}

5. 新增的工具方法

// 获取车主类型样式类
getOwnerTypeClass(ownerType) {switch(ownerType) {case 'local': return 'type-local';case 'monthly': return 'type-monthly';case 'unknown':default: return 'type-visitor';}
}// 获取车主类型图标
getOwnerTypeIcon(ownerType) {switch(ownerType) {case 'local': return '🏠';case 'monthly': return '🎫';case 'unknown':default: return '🚗';}
}// 获取车主类型文本
getOwnerTypeText(ownerType) {switch(ownerType) {case 'local': return '本地车主';case 'monthly': return '月票车主';case 'unknown':default: return '预约车辆';}
}// 获取信用分数样式类
getCreditScoreClass(score) {if (score >= 90) return 'score-excellent';if (score >= 80) return 'score-good';if (score >= 70) return 'score-normal';return 'score-poor';
}

🎯 显示效果

本地车主违规记录

  • 🏠 本地车主(绿色标签)
  • 显示业主姓名、联系电话、详细地址
  • 显示小区名称、信用分数
  • 信用分数有颜色区分(90+绿色,80-89浅绿,70-79橙色,<70红色)

月票车主违规记录

  • 🎫 月票车主(蓝色标签)
  • 显示车主姓名、联系电话、车场信息
  • 显示月票名称、车场名称、月票状态
  • 月票状态:有效(绿色)/无效(红色)

预约访客车辆违规记录

  • 🚗 预约车辆(橙色标签)
  • 显示提示:该车辆为预约访客车辆或无车主信息
  • 背景为橙色渐变,突出显示

✅ 兼容性说明

  1. 向后兼容: 如果后端未返回 ownerType 字段,默认为 'unknown'
  1. 字段兼容: 支持新旧字段名的映射(如 plateNumberplate_number
  1. 空值处理: 所有字段都有默认值,避免显示 nullundefined

🚀 测试验证

测试用例

  1. 本地车主: 验证显示绿色标签、小区信息、信用分数
  1. 月票车主: 验证显示蓝色标签、月票信息、车场名称
  1. 预约车辆: 验证显示橙色标签、访客提示信息
  1. 数据缺失: 验证字段为空时的默认显示

验证要点

  • 车主类型标签是否正确显示
  • 专属信息是否根据类型显示/隐藏
  • 样式是否正确应用
  • 边界情况是否正常处理
http://www.dtcms.com/a/392994.html

相关文章:

  • 成功安装了 Anaconda3。要启动它,您有以下几种主要方式:方式一:通过“开始菜单”启动(最直接的方法)1. 点击您电脑屏幕左下角的 “开始菜单”(Win
  • flex布局实现导航栏横向滚动切换
  • 改进过程缺乏数据驱动会带来哪些后果
  • 实验1.1点亮led灯
  • 林粒粒的视频笔记13-数据清洗
  • Java进阶教程,全面剖析Java多线程编程,线程出让,笔记09
  • 大模型微调之 用LoRA微调Llama2(附代码)——李宏毅2025大模型作业5笔记-上
  • Matplotlib地理数据可视化技术详解:Cartopy与Basemap实战指南
  • wordpress 图片不显示 后台无法登陆的问题之一
  • TFS-2023《Local-Global Fuzzy Clustering With Anchor Graph》
  • Spring —— AOP
  • 讲一下ZooKeeper的持久化机制
  • 【Java后端】深入理解 Spring Security:从原理到实战
  • LeetCode:31.K个一组翻转链表
  • openharmony之系统亮度范围定制
  • 一种利用串口51单片机远程升级 OTA
  • Redis三种集群模式
  • C++ map_set封装
  • NW836NW884美光固态闪存NW885NW913
  • STM32计算步进电机转速
  • liboffice 全屏禁用工具栏
  • Photoshop - Photoshop 调整图像品质
  • 【CF】Day146——杂题 (递归 | 规律与操作)
  • PyTorch 中特征变换:卷积与转置卷积
  • HashMap底层原理详解:扩容、红黑树与ConcurrentHashMap的线程安全
  • autodl文件存储,文件同步,conda环境同步问题
  • 【ROS2】Begginer : CLI tools - 理解 ROS 2 话题
  • Java网络编程:从基础到实战
  • 面试MYSQL的索引类型、索引的工作原理、以及索引优化策略
  • 一、Pytorch安装教程-windows环境,利用Anaconda搭建虚拟环境,Pycharm开发工具