处理key value数据

在这里插入图片描述
在这里插入图片描述

循环以上数据

	<u-popup :round="10" :show="tab === 'OilType'" @close="close" mode="bottom"><view class="container"><view v-for="(allData, allType) in allList" :key="allType"><view class="title">{{ allType }}</view><view class="box"><view v-for="item in allData" :key="item.id" @click="checkItem(item,allType)":class="{ active: isActive(item, allType) }">{{ item.name }}</view></view></view></view></u-popup>

css

	.container .title {display: flex;margin: 10rpx 0;font-family: PingFang SC, PingFang SC;font-weight: 700;font-size: 32rpx;color: #1A1D1F;}.container .box {display: flex;margin: 10rpx 0;flex-wrap: wrap;justify-content: left;}.container .box>view {border: 1px solid #ccc;border-radius: 50rpx;font-size: 30rpx;padding: 6rpx 46rpx;margin: 10rpx;text-align: center;}.container .box .content:last-child {margin-right: 0;}.container .box>view.active {padding: 6rpx 46rpx;background-color: rgb(251, 227, 213) !important;text-align: center;font-size: 24rpx;border-radius: 50rpx;border: 2rpx solid #FD893F !important;color: #FD893F;}

完整代码

<template><view class="hello"><view class="filter"><view @click="checkTab('OilType')" :class="{ active: !!allSelectData }">{{ allSelectData ? allSelectData : "全部" }}<text class="icon cuIcon-triangledownfill"></text></view><view @click="checkTab('distance')" :class="{ active: !!disSelectData }">{{ disSelectData ? disSelectData : "距离" }}<text class="icon cuIcon-triangledownfill"></text></view><view @click="checkTab('filter')">筛选<text class="icon cuIcon-triangledownfill"></text></view></view><u-popup :round="10" :show="tab === 'OilType'" @close="close" mode="bottom"><view class="container"><view v-for="(allData, allType) in allList" :key="allType"><view class="title">{{ allType }}</view><view class="box"><view v-for="item in allData" :key="item.id" @click="checkItem(item,allType)":class="{ active: isActive(item, allType) }">{{ item.name }}</view></view></view></view></u-popup><u-popup :round="10" :show="tab === 'distance'" @close="close" mode="bottom"><view class="distance"><view class="disItem" v-for="(item, index) in distance" :key="index" @click="checkDistance(item)"><view class="title">{{ item.title }}</view></view></view></u-popup><u-popup :round="10" :show="tab === 'filter'" @close="close" mode="bottom"><view class="container"><view v-for="(item, itemIndex) in filter" :key="itemIndex"><view><view class="title">{{ item.title }}</view><view class="box"><view class="content" v-for="(f, fIndex) in item.children" :key="fIndex"@click="checkFilter(itemIndex, fIndex)" :class="{ active: f.check }">{{ f.title }}</view></view></view></view><view class="bottom"><button class="btnOne" type="info" @click="reSet">重置</button><button class="btnTwo" type="primary" @click="success">确定</button></view></view></u-popup></view>
</template><script>import {oilType} from '@/api/distance.js'export default {props: {},data() {return {activeType: null, // 当前活动的类型(汽油、柴油等)  activeId: null, // 当前活动的ID  allSelectData: "", //全部disSelectData: "", //距离tab: "", //控制弹框的显示与隐藏 allList: {},distance: [{title: '距离最近'}, {title: '推荐排序'}, {title: '价格降序'}, {title: '价格升序'}],filter: [{title: "周边",children: [{title: "洗手间",check: false,}, {title: "提供发票",check: false,}, {title: "便利店",check: false,},{title: "免费洗车",check: false,},{title: "免费就餐",check: false,},],}, ]};},onShow() {},methods: {// 全部数据getOilType() {oilType().then(res => {this.allList = res.data.data})},// 全部弹框信息checkItem(item, allType) {// 更新活动的类型和ID  this.activeType = allType;this.activeId = item.id;// 关闭弹框  this.close();},// 高亮isActive(item, allType) {// 判断当前项是否是活动的  return this.activeType === allType && this.activeId === item.id;},// 关闭close() {this.tab = "";},// tab栏checkTab(type) {this.tab = type;this.getOilType()},// 距离checkDistance(item) {item.check = true;if (item.title === '推荐排序') {this.disSelectData = '推荐';} else if (item.title === '距离最近') {this.disSelectData = '距离';} else if (item.title === '价格降序' || item.title === '价格升序') {this.disSelectData = '价格';}this.tab = "";},// 筛选checkFilter(f) {f.check = truethis.tab = "";},checkFilter(itemIndex, fIndex) {// 切换当前选项的选中状态  this.filter[itemIndex].children[fIndex].check = !this.filter[itemIndex].children[fIndex].check;},success() {// 处理确定按钮的逻辑,比如提交筛选条件等  // 然后关闭弹出窗口  this.tab = ''; // 假设关闭弹出窗口是通过将tab设置为空字符串实现的  },reSet() {// 重置所有选项的选中状态  this.filter.forEach(item => {item.children.forEach(f => {f.check = false;});});}},};
</script><style lang="scss">.icon {color: #A7A7A7;}.filter {display: flex;justify-content: space-between;}.filter>view {margin-left: 80rpx;/* width: 33%; */}.filter>view.active {color: #FD893F;}.distance {padding: 30rpx 48rpx;.disItem {text-align: center;line-height: 100rpx;height: 100rpx;width: 100%;border-bottom: 2rpx solid #f9f9f9;}}.container {padding: 30rpx 48rpx;.bottom {display: flex;justify-content: space-between;.btnOne {width: 100%;margin-right: 10rpx;font-size: 28rpx;}.btnTwo {width: 100%;font-size: 28rpx;}}}.container .title {display: flex;margin: 10rpx 0;font-family: PingFang SC, PingFang SC;font-weight: 700;font-size: 32rpx;color: #1A1D1F;}.container .box {display: flex;margin: 10rpx 0;flex-wrap: wrap;justify-content: left;}.container .box>view {border: 1px solid #ccc;border-radius: 50rpx;font-size: 30rpx;padding: 6rpx 46rpx;margin: 10rpx;text-align: center;}.container .box .content:last-child {margin-right: 0;}.container .box>view.active {padding: 6rpx 46rpx;background-color: rgb(251, 227, 213) !important;text-align: center;font-size: 24rpx;border-radius: 50rpx;border: 2rpx solid #FD893F !important;color: #FD893F;}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

注意!流量卡的禁区并不一样,请看清楚后再下单!

大家好&#xff0c;我是搜卡之家&#xff0c;今天我又来给大家科普了&#xff01; 今天科普的内容是关于流量卡禁区&#xff01; 首先要说一下&#xff0c;流量卡为什么会有禁区&#xff1f;运营商设立禁区主要是为了应对电信诈骗和违法使用电话卡的行为&#xff0c;确保网络…

Web应用和Tomcat的集成鉴权2-Form Authentication

作者:私语茶馆 1.相关章节 1) Web应用和Tomcat的集成鉴权1-BasicAuthentication-CSDN博客 2) Web应用和Tomcat的集成鉴权2-Form Authentication-CSDN博客 集成鉴权+定制化登录 2.前言 上章讲述了Tomcat的Basic Authentication鉴权模式,可以让Web应用和Tomcat的鉴权集成起来…

【Flink metric(1)】Flink指标系统的系统性知识:获取metric以及注册自己的metric

文章目录 一. Registering metrics&#xff1a;向flink注册新自己的metrics1. 注册metrics2. Metric types:指标类型2.1. Counter2.2. Gauge2.3. Histogram(ing)2.4. Meter 二. Scope:指标作用域1. User Scope2. System Scope ing3. User Variables 三. Reporter ing四. System…

面试题-Java垃圾回收之垃圾收集器

1.基础知识 (1)知识点补充 Stop -the -World:发生时&#xff0c;除了GC所用的线程之外&#xff0c;所有的线程都处于等待状态 Safepoint: 可达性分析算法时&#xff0c;必须保证在某个快照点进行。 分析的过程中对象的引用关系不会发生变化&#xff01; JVM的运行模式&#x…

数据结构-分析期末选择题考点(排序)

何似清歌倚桃李 一炉沈水醉红灯 契子 ✨ 上一期给大家提供了大概会考的题型给老铁们复习的大致思路 这一期还会是一样&#xff0c;我将整理一下排序的题型以及解题方法给你们 由于时间还很多&#xff0c;我就慢慢总结吧&#xff0c;一天一章的样子&#xff0c;明天总结串、后天…

MyBatis源码分析--一级缓存、二级缓存原理

前言&#xff1a; 有点项目经验的朋友都知道缓存的重要性是不言而喻的&#xff0c;不仅仅我们在开发项目业务功能的时候使用了各种缓存&#xff0c;框架在设计的时候也有框架层面的缓存&#xff0c;尤其在查询多的场景下&#xff0c;缓存可以大大的减少数据库访问&#xff0c;…

微前端框架是为了解决项目应用在大型项目中带来的复杂性和维护难题而提出的技术方案。

微前端框架是为了解决单页应用&#xff08;SPA&#xff09;在大型项目中带来的复杂性和维护难题而提出的技术方案。Qiankun.js、MicroApp 和 Wujie 是三种流行的微前端框架。以下是对这三种框架的优缺点分析&#xff1a; Qiankun.js 优点 成熟度高&#xff1a;Qiankun.js 基…

【知识学习】阐述Unity3D中FogLOD的概念及使用方法示例

在Unity3D中&#xff0c;Fog&#xff08;雾效&#xff09;和LOD&#xff08;Level of Detail&#xff0c;细节层次&#xff09;是两种用于提高场景视觉效果和性能的技术。 Fog&#xff08;雾效&#xff09; 雾效是一种视觉效果&#xff0c;用于模拟大气中的雾或烟&#xff0c…

YOLOv8数据集标注

1 简介 数据集是必不可少的部分&#xff0c;数据集的优劣直接影响训练效果。一般来说&#xff0c;一个完整的数据集应该包括训练集、测试集和验证集。通常&#xff0c;数据集会被划分为训练集和测试集&#xff0c;比如将数据集的70%用作训练集&#xff0c;30%用作测试集。在进行…

信号处理——时频分析

经典傅里叶变换的限制&#xff1a; 1、只能反映信号的整体特性&#xff1b;&#xff08;完全是时域或频域&#xff09; 2、要求信号满足平稳条件&#xff1b; 3、必须获得时域中的全部信息。 所以引入时频分析&#xff0c;同时使用时间和频率的联合函数来表示信号。 1 时频…

提高数据融合效率和数据成果质量工作流的可行性分析

第一章 引言 本文基于对框架数据、地名地址数据以及变更调查数据为主体数据源的分析&#xff0c;结合数据融合中分层数据处理原则和内容&#xff0c;从数据管理者、数据应用的角度提出数据质量的定位、需求定位&#xff0c;归纳数据融合过程中存在的困难&#xff0c;提出了数据…

嵌入式linux面试题大全及参考答案(3万字长文)

目录 解释Linux内核的主要职责 什么是inode?它在文件系统中扮演什么角色? 常用的5个Linux文件权限标志 查看当前系统运行级别 查找包含特定字符串的文件 使用grep命令过滤特定模式的行 编写脚本检查指定目录下文件大小并排序输出 解释变量、环境变量和位置参数在Shel…

前端npm打包自动压缩

需要插件rollup-plugin-compression 在vite.config中使用 import compresssionBuild from rollup-plugin-compression import type { ICompressionOptions } from rollup-plugin-compression import dayjs from dayjs import packageInfo from ./package.json const option: I…

FANUC喷涂机器人P-350iA电机过热维修解决方案

发那科喷涂机器人作为自动化喷涂生产线的重要组成部分&#xff0c;其性能稳定性和可靠性对于生产效率和产品质量具有重要影响。然而&#xff0c;在实际使用过程中&#xff0c;FANUC喷涂机器人P-350iA电机过热故障问题往往成为影响其正常运行的主要因素之一。 FANUC机器人M-100…

产品经理进阶:供应链管理制度

目录 一、 目的 二、范围 三、意义 五、周期 一、 目的 根据公司战略规划和经营目标,建立和完善生产计划、物料控制体系、库存 管理体系。通过匹配需求和产能,确保在满足市场需求的同时降低整体库存 水平,提高存货周转率,以达成公司的成本管理目标。 二、范围 涉及供应…

vue2的双向绑定

vue是一个mvvm框架&#xff0c;即数据双向绑定&#xff0c;即当数据发生变化的时候&#xff0c;视图也就发生变化&#xff0c;当视图发生变化的时候&#xff0c;数据也会跟着同步变化。 Vue.js 2 中的双向绑定是通过 v-model 指令实现的。v-model 指令可以在表单输入元素上创建…

一款开源免费的现代化风格的Avalonia控件库

前言 Citrus.Avalonia是一款开源&#xff08;MIT License&#xff09;、免费的现代化风格的Avalonia控件库。 Avalonia介绍 Avalonia是一个强大的框架&#xff0c;使开发人员能够使用.NET创建跨平台应用程序。它使用自己的渲染引擎绘制UI控件&#xff0c;确保在Windows、mac…

推荐系统数据集——Amazon-Book

在推荐系统中&#xff0c;像Amazon-Book这样的数据集通常包含用户和物品的交互信息。为了训练模型&#xff0c;这些数据需要转换成适合模型输入的格式。在这种情况下&#xff0c;item_list和user_list需要转换成train.txt文件&#xff0c;通常包含用户ID和物品ID的交互记录。 …

你的生日是星期几?HTML+JavaScript帮你列出来

0 源起 上周末&#xff0c;大宝发现今年自己的生日不是周末&#xff0c;这样就不好约同学和好友一起开生日Party了&#xff0c;很是郁闷。一直嘀咕自己哪年的生日才是周末。 于是我用JavaScript写了一个小程序来帮她测算了未来100年中每年的生日分别是星期几。 1 设计交互界面…

torch创建2d卷积层报错

import torch import torch.nn as nn print(nn.Conv2d(3, 16, 3, padding1)) 编译器:pycharm2023.03.05 python&#xff1a;3.11 运行上述代码 页面报错&#xff1a;OSError: [WinError 126] 找不到指定的模块。 Error loading "D:\apploadpath\pythonPath\Lib\site-…