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

表单自定义组件 - 可选择卡片SelectCard

在这里插入图片描述

import React from 'react';
import styles from './index.module.less';type OptionsType = {/*** 每个item渲染一行,第0项为标题*/labels?: any[];/*** 自定义渲染内容*/label?: string | React.ReactNode;value: any;
};
interface IProps {value?: any;onChange?: Function;options: OptionsType[];layout?: 'horizontal' | 'vertical';disabled?: boolean;
}export default function Index(props: IProps) {const { value, onChange = () => {}, options, layout = 'horizontal', disabled = false } = props;const clickHandler = (row) => {if (disabled) return;if (value === row.value) {onChange(undefined);} else {onChange(row.value);}};return (<div className={`${styles.container} ${styles[layout]}`}>{options?.map((item, index) => {const activeStyles = item.value === value ? styles['select-card-checked'] : styles['select-card'];const disabledStyles = disabled ? styles['select-card-disabled'] : '';return (<div key={index} className={`${activeStyles} ${disabledStyles}`.trim()} onClick={() => clickHandler(item)}><div className={styles.corner}></div><div className={styles.content}>{item?.label? item?.label: item?.labels?.map((v, idx) => {return (<React.Fragment key={idx}>{idx === 0 && v ? (<div className={styles.title}>{v}</div>) : (<div className={styles.text}>{v}</div>)}</React.Fragment>);})}</div></div>);})}</div>);
}
@primaric-color: #5050e6;
@primary-color-opacity: #5050e680;.container {.select-card {position: relative;width: 300px;padding: 14px;border-radius: 5px;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);border: 1px solid #f9f9f9;background-color: #fff;cursor: pointer;margin: 0 14px 14px 0;.corner {position: absolute;top: 2px;right: 2px;width: 0;height: 0;border-top: 12px solid #5050e6;border-left: 12px solid transparent;border-radius: 0 3px 0 0;opacity: 0;}.content {.title {margin: 0;font-size: 15px;font-weight: bold;color: #333;margin-bottom: 10px;}.title:nth-last-of-type(1) {margin-bottom: 0;}.text {margin-bottom: 10px;font-size: 14px;color: #666;}.text:nth-last-of-type(1) {margin-bottom: 0;}}}.select-card:hover {border-color: @primary-color-opacity;box-shadow: 0 0 3px 0 @primaric-color;}.select-card:nth-last-of-type(1) {margin: 0;}.select-card-checked {position: relative;width: 300px;padding: 14px;border-radius: 5px;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);border: 1px solid @primary-color-opacity;background-color: #f0f2ff;cursor: pointer;margin: 0 14px 14px 0;box-shadow: 0 0 3px 0 @primaric-color;.corner {position: absolute;top: 2px;right: 2px;width: 0;height: 0;border-top: 12px solid @primaric-color;border-left: 12px solid transparent;border-radius: 0 3px 0 0;opacity: 1;}.content {.title {margin: 0;font-size: 15px;font-weight: bold;margin-bottom: 10px;}.title:nth-last-of-type(1) {margin-bottom: 0;}.text {margin-bottom: 10px;font-size: 14px;color: #666;}.text:nth-last-of-type(1) {margin-bottom: 0;}}}.select-card-checked:nth-last-of-type(1) {margin: 0;}.select-card-disabled {background-color: #e0e0e0;border-color: #a0a0a0;color: #666;box-shadow: none;cursor: not-allowed;.corner {border-top-color: #a0a0a0;}}
}.horizontal {
}.vertical {display: flex;flex-wrap: wrap;
}

相关文章:

表单自定义组件 - 可选择卡片SelectCard

import React from react; import styles from ./index.module.less;type OptionsType {/*** 每个item渲染一行&#xff0c;第0项为标题*/labels?: any[];/*** 自定义渲染内容*/label?: string | React.ReactNode;value: any; }; interface IProps {value?: any;onChange?…...

Ubuntu / Debian安装FTP服务

本章教程,记录在Ubuntu中安装FTP服务的具体步骤。FTP默认端口:21 1、安装 pure-ftpd sudo apt-get install pure-ftpd2、修改默认配置 # 与 centos 不同,这里需要在 /etc/pure-ftpd/conf 文件夹下执行下列命令,增加对应配置文件: # 创建 /etc/pure-ftpd/conf/PureDB 文件…...

若依 Vue 前端分离 3.8.8 版中生成的前端代码中关于下拉框只有下拉箭头的问题

生成代码修改前 <el-form-item label"课程学科" prop"subject"><el-select v-model"queryParams.subject" placeholder"请选择课程学科" clearable><el-optionv-for"dict in course_subject":key"dict…...

C++把一个类封装成动态链接库

一、步骤 1. 创建类头文件 首先&#xff0c;定义你要封装的类。例如&#xff0c;创建一个名为MyClass的类&#xff1a; // MyClass.h #pragma once#ifdef MYCLASS_EXPORTS #define MYCLASS_API __declspec(dllexport) #else #define MYCLASS_API __declspec(dllimport) #end…...

每天一个项目管理概念之项目章程

项目管理中&#xff0c;项目章程扮演着至关重要的角色。它是项目正式启动的标志&#xff0c;为项目的执行提供法律和组织上的认可。项目章程是项目管理知识体系&#xff08;PMBOK&#xff09;中定义的关键文档之一&#xff0c;对于确保项目的顺利进行具有决定性的影响。 定义与…...

c++11新特性-4-返回类型后置

文章目录 返回类型后置1.基本语法 返回类型后置 1.基本语法 auto func(参数1&#xff0c;参数2&#xff0c;参数3&#xff0c;...)->decltype(参数表达式) {...... }例如&#xff1a; template<typename T,typename U> auto add(T t,U u)->decltype(t u) {retu…...

Linux-C语言实现一个进度条小项目

如何在linux中用C语言写一个项目来实现进度条&#xff1f;&#xff08;如下图所示&#xff09; 我们知道\r是回车&#xff0c;\n是换行&#xff08;且会刷新&#xff09; 我们可以用 \r 将光标移回行首&#xff0c;重新打印一样格式的内容&#xff0c;覆盖旧的内容&#xff0c;…...

vue使用glide.js实现轮播图(可直接复制使用)

效果图 可以实现自动轮播&#xff0c;3种切换方式&#xff1a;直接滑动图片、点击两侧按钮、点击底部按钮 体验链接:http://website.livequeen.top 实现 一、引入依赖 1、控制台引入依赖 npm install glidejs/glide 2、在css中引用 <style scoped> import glidejs/g…...

TK养号工具开发会用上的源代码科普!

在当今数字化时代&#xff0c;社交媒体平台的崛起使得网络账号的维护与管理变得日益重要&#xff0c;其中&#xff0c;TK作为一款备受欢迎的社交媒体平台&#xff0c;吸引了大量用户。 在TK上进行账号养护&#xff0c;即通过各种方式提升账号权重、增加曝光量&#xff0c;已成…...

信创-办公软件应用工程师认证

随着国家对信息技术自主创新的战略重视程度不断提升&#xff0c;信创产业迎来前所未有的发展机遇。未来几年内&#xff0c;信创产业将呈现市场规模扩大、技术创新加速、产业链完善和国产化替代加速的趋势。信创人才培养对于推动产业发展具有重要意义。应加强高校教育、建立人才…...

数组操作forEach和map

forEach和map的相同点 1、都是循环遍历数组中的每一项 2、入参匿名函数都支持三个参数&#xff0c;当前项item&#xff0c;当前项索引index&#xff0c;原始数组arr&#xff1b;匿名函数中的this都指向window 3、都可以通过return跳过本次循环 4、都无法通过使用 break 语句来中…...

流式处理应用场景与流式计算处理框架选择建议

文章目录 前言使用场景如何选择流式处理框架 前言 在之前的文章中我们介绍了如何进行流式处理——从一般性的概念和模式说起&#xff0c;并列举了一些Streams的例子&#xff1a; 流式处理相关概念总结说明流式处理设计模式总结说明Kafka Streams 架构概览 接下来的文章将介绍…...

2024年软件测试岗必问的100+个面试题【含答案】

一、基础理论 1、开场介绍 介绍要领&#xff1a;个人基本信息、工作经历、之前所做过的工作及个人专长或者技能优势。扬长避短&#xff0c;一定要口语化&#xff0c;语速适中。沟通好的就多说几句&#xff0c;沟通不好的话就尽量少说两句。举例如下&#xff1a; 面试官你好&…...

A4-C四驱高防轮式巡检机器人

在当今数字化和智能化迅速发展的时代&#xff0c;旗晟智能带来了一款革命性的创新产品——A4-C四驱高防轮式巡检机器人。这款机器人以其卓越的性能和多功能性&#xff0c;为工业巡检领域带来了全新的解决方案。 一、产品亮点 1、四驱动力与高防护设计 四驱高防轮式巡检机器人…...

Https网站如何申请免费的SSL证书及操作使用指南

前言 在当今互联网环境下&#xff0c;HTTPS已成为网站安全的标配&#xff0c;它通过SSL/TLS协议为网站数据传输提供加密&#xff0c;保障用户信息的安全。申请并部署免费SSL证书&#xff0c;不仅能够提升网站的专业形象&#xff0c;还能增强用户信任。本文将详细介绍如何在知名…...

实现资产优化管理:智慧校园资产分类功能解析

在构建智慧校园的过程中&#xff0c;细致入微的资产管理是确保教育资源高效运作的关键一环&#xff0c;而资产分类功能则扮演着举足轻重的角色。系统通过精心设计的分类体系&#xff0c;将校园内的各类资产&#xff0c;从昂贵的教学设备到日常使用的办公物资&#xff0c;乃至无…...

大厂开发必知必会:Devops、CI/CD、流水线和Paas的关系解析说明

为什么作为程序开发人员需要了解ci/cd流程和原理&#xff1f; 作为程序开发人员&#xff0c;了解CI/CD&#xff08;持续集成/持续交付&#xff09;的流程和原理具有以下几个重要的理由&#xff1a; 1. 提高代码质量和稳定性 自动化测试&#xff1a;CI/CD流程中集成了自动化测…...

Qt学习:Qt窗口组件以及窗口类型

一、Qt的窗口组件有哪些 Qt是一个跨平台的C应用程序开发框架&#xff0c;它的窗口组件&#xff0c;也称为用户界面元素&#xff0c;为开发者提供了丰富的可视化界面设计选项。在Qt中&#xff0c;窗口组件主要包括&#xff1a; 窗口&#xff08;Window&#xff09;&#xff1a;…...

基于AGX ORIN与FPGA K7实现PCIE高速数据通信/Orin与FPGA高速数据传输/XDMA在linux系统使用教程

因最近想学习AGX orin和FPGA实现数据高速通信&#xff0c;借此机会和大家一起学习AGX orin和FPGA 制作不易&#xff0c;记得三连哦&#xff0c;给我动力&#xff0c;持续更新&#xff01;&#xff01;&#xff01; 完整工程文件下载&#xff1a;AGX orin与FPGA实现PCIE完整…...

Vue3:全局播放背景音乐

说明&#xff1a;一个全局播放的背景音乐&#xff0c;首页无音乐无音乐图标&#xff0c;在首页互动跳转页面并开始播放音乐&#xff0c;切换页面不需暂停音乐也不会重置音乐&#xff0c;可以通过音乐图标控制暂停或播放。 MusicPlay.vue&#xff08;音乐组件&#xff09; <…...

机器学习结合基因无关通路映射:从临床数据挖掘新药靶点

1. 项目概述&#xff1a;当机器学习遇见代谢通路&#xff0c;如何从数据中“挖”出新药靶点&#xff1f;在生物医学研究的前沿&#xff0c;我们正面临一个核心矛盾&#xff1a;一方面&#xff0c;我们拥有海量的临床数据&#xff0c;比如血糖、血压、BMI等指标&#xff1b;另一…...

第二周(第12周)

1.单电源供电的二阶低通滤波器2.功率放大电路...

智慧树自动刷课助手:3步告别手动操作的学习效率工具

智慧树自动刷课助手&#xff1a;3步告别手动操作的学习效率工具 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的重复刷课操作而烦恼吗&#xff1f;智…...

光效崩坏?噪点泛滥?色温漂移?——Midjourney专业级光效渲染全流程校准协议,含ACEScg色彩空间适配模板

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;光效崩坏、噪点泛滥与色温漂移的系统性归因诊断 图像采集链路中出现的光效崩坏、噪点泛滥与色温漂移并非孤立现象&#xff0c;而是光学设计、传感器响应、ISP管线调度及环境耦合失配共同作用的结果。三者常呈现…...

基于可解释机器学习的城市人口流动空间降尺度分析实践

1. 项目概述&#xff1a;从宏观到微观&#xff0c;解码城市脉搏在城市的肌理中&#xff0c;人口的流动如同血液的循环&#xff0c;承载着经济活力、社会互动与空间结构的全部信息。无论是城市规划师优化公交线路&#xff0c;还是商业分析师评估店铺选址&#xff0c;亦或是公共卫…...

翻译 GDB 官方文档

翻译 GDB 官方文档项目地址官方文档地址下载源码包编译html运行翻译程序项目地址 https://github.com/shootercheng/gdb-translate.git 项目结构 $ tree -L 1 . ├── cmd ├── go.mod ├── input ├── internal ├── LICENSE ├── output ├── README.md ├─…...

淘宝淘金币自动化脚本终极指南:如何每天节省25分钟实现智能任务管理

淘宝淘金币自动化脚本终极指南&#xff1a;如何每天节省25分钟实现智能任务管理 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本&#xff0c;包含蚂蚁森林收取能量&#xff0c;芭芭农场全任务&#xff0c;解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taoji…...

机器学习力场攻克Peierls相变动力学:从对称性描述符到畴生长标度律

1. 项目概述&#xff1a;当机器学习遇见Peierls相变在凝聚态物理和材料科学的前沿&#xff0c;我们常常被一个核心问题所困扰&#xff1a;如何精确地模拟那些由电子和晶格&#xff08;原子&#xff09;强烈耦合所驱动的复杂动力学过程&#xff1f;这类系统&#xff0c;比如电荷…...

Visual C++运行库一键安装指南:彻底解决Windows应用依赖问题

Visual C运行库一键安装指南&#xff1a;彻底解决Windows应用依赖问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过打开软件时弹出"缺少…...

你的差异基因结果可靠吗?用MetaVolcanoR给多个GEO数据集做一次‘交叉验证’吧

你的差异基因结果可靠吗&#xff1f;用MetaVolcanoR给多个GEO数据集做一次"交叉验证"当你在GEO数据库中下载了三个肺癌研究的差异表达结果&#xff0c;却发现三个DEG列表的重叠基因不到20%——这种令人沮丧的场景每天都在全球实验室上演。单项研究的差异分析结果就像…...