使用vant-ui+vue3实现一个可复用的评星组件

1111
如图所示 有两种情况 一种是5颗星 一种是3颗星
官网上只提供了图标类型的 并没有加文字

https://femessage-vant.netlify.app/#/zh-CN/

自己结合两种情况

在全局注册了此组件(后续还会持续更新代码~)

<template><div class="vant_rate_wrapper"><van-rate class="vant_rate" :class="{'vant_rate_3': props.count===3}" :disabled="props.disabled"    color="#F4BA43"  void-icon="star" void-color="#EAEAEA" :count="props.count"  v-model="data.rateValue" /><div class="vant_rate_tip"  v-if="props.count===5"><span class="very_dissatisfied" :class="{'text-gray': data.rateValue < 1}">非常不满意</span><span  class="dissatisfied" :class="{'text-gray': data.rateValue < 2}">不满意</span><span class="general" :class="{'text-gray': data.rateValue < 3}">一般</span><span class="pleased" :class="{'text-gray': data.rateValue < 4}">满意</span><span class="very_pleased" :class="{'text-gray': data.rateValue < 5}">非常满意</span></div><div class="vant_rate_tip_three" v-else><span class="very_dissatisfied" :class="{'text-gray': data.rateValue < 1}">非常不满意</span><span class="general" :class="{'text-gray': data.rateValue < 2}">一般</span><span class="pleased" :class="{'text-gray': data.rateValue < 3}">满意</span></div></div>
</template><script setup lang="ts">
import {ref, reactive, watch} from "vue";
//props
interface iProps {touchable?:boolean, //是否可以通过滑动手势选择评分count?:numberdisabled?: booleanerror?:booleanmodelValue: number[key: string]: any
}
//emit
interface iEmit {(e: 'click', value: string): void(e: 'input', value: string): void(e: 'change', value: string): void(e: 'update:modelValue', value: number): void   //更新v-model
}const emit = defineEmits<iEmit>();
const props = withDefaults(defineProps<iProps>(), {modelValue:0
})
interface iData {rateValue:number,
}
const data:iData=reactive({rateValue:props.modelValue})
watch(()=>props.modelValue,(newVal)=>{console.log(44434,newVal)data.rateValue = newVal
},{immediate: true
})
</script><style scoped lang="less">
.vant_rate_wrapper{width: calc(100% - 40px);height: 46px;border-radius: 5px;padding: 20px ;border: 1px solid #DDE0E8;/deep/.vant_rate{display: flex;justify-content: space-around;.van-rate__item{margin-left: 5px;}}/deep/.vant_rate_3{display: flex;justify-content: space-around;padding: 0 14px 0 20px;.van-rate__item {&:first-child {margin-left: 0; // 第一个星与五个星的第一个星对齐}&:nth-child(2) {margin-left: 36%; // 第二个星与五个星的第三个星对齐}&:nth-child(3) {margin-left: auto; // 第三个星与五个星的最后一个星对齐}}}.vant_rate_tip{margin-top: 14px;line-height: 1;display: flex;justify-content: flex-start;text-align: left;span{font-weight: 400;font-size: 12px;color:rgba(0,0,0,0.9)}.dissatisfied{margin-left: 10px;}.general{margin-left: 26px;}.pleased{margin-left: 36px;}.very_pleased{margin-left: 22px;}}.vant_rate_tip_three{margin-top: 14px;line-height: 1;display: flex;justify-content: flex-start;text-align: center;span{font-weight: 400;font-size: 12px;}.general{margin-left: 70px;}.pleased{margin-left: 97px;}}/deep/.van-rate--disabled{.van-rate__icon--full{color:#F4BA43;}}.text-gray {color: rgba(0,0,0,0.35) !important; // 灰色}
}</style>

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

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

相关文章

Ceph集群扩容及数据再均衡原理分析

用户文件在Ceph RADOS中存储、定位过程大概包括&#xff1a;用户文件切割成对象、对象映射到PG、PG分组PGP、PG映射到OSD。这些过程中&#xff0c;可能涉及了大量概念和变量&#xff0c;而其实它们大部分是通过HASH、CRUSH等算法计算出来的&#xff0c;初始参数可能也就只有这么…

OpenResty单机限流

目录 该项目已经实现的限流方法限流流程图限流规则存储针对接口限流 限流算法实现主要代码部分固定窗口令牌桶限制并发数 注意点 前言&#xff1a; 上一篇文章介绍了OpenResty的安装和lua的基本语法学习&#xff0c;这一篇介绍一下使用OpenResty进行限流。本文只对限流功能实现…

BLDC电机基础知识

1、电机工作原理 电机输入的是电能输出机械能&#xff0c;即电机是一种将电能转换为机械能的装置。电机利用磁场的同名磁极互相排斥以及电磁场原理完成电能与机械能的转换。 由物理电磁场理论知识我们知道&#xff0c;磁铁周围存在磁场&#xff0c;同时运动的电荷或通电导线周…

将 Vue、React、Angular、HTML 等一键打包成 macOS 和 Windows 平台客户端应用

应用简介 PPX 基于 pywebview 和 PyInstaller 框架&#xff0c;构建 macOS 和 Windows 平台的客户端。本应用的视图层支持 Vue、React、Angular、HTML 中的任意一种&#xff0c;业务层支持 Python 脚本。考虑到某些生物计算场景数据量大&#xff0c;数据私密&#xff0c;因此将…

uniapp的底部弹出层实现保姆式教程

实现照片&#xff1a; 此过程先进入uniapp官网&#xff0c;找到扩展组件 打开找到里面的uni-popup和uni-icons 点击进入&#xff0c;下载&安装 点击下载并导入HBuilderX 导入到你使用的目录&#xff0c;如test目录 同样将uni-icons点击下载并导入HBuilderX 点击合并 此时te…

C++ 常量

常量是指在程序运行过程中&#xff0c;其值不能被改变的量。 如&#xff1a;i255;arearr3.14; 在程序中直接使用数值有两个问题&#xff1a; 可读性差&#xff1b; 可维护差&#xff1b; 一 符号常量 C语言符号常量的顶用形式如下&#xff1a; 二 C99的const常量 C 语言co…

MyBatis-Plus核心功能详解:条件构造器、自定义SQL与Service接口

在Java的Web开发中&#xff0c;MyBatis-Plus作为MyBatis的增强工具&#xff0c;提供了许多实用的功能&#xff0c;极大地简化了数据库操作的开发过程。下面&#xff0c;我们将详细探讨MyBatis-Plus的三大核心功能&#xff1a;条件构造器、自定义SQL以及Service接口。 一、条件…

凸优化理论学习二|凸函数及其相关概念

系列文章目录 凸优化理论学习一|最优化及凸集的基本概念 文章目录 系列文章目录一、凸函数&#xff08;一&#xff09;凸集&#xff08;二&#xff09;凸函数的定义及举例&#xff08;三&#xff09;凸函数的证明1、将凸函数限制在一条直线上2、判断函数是否为凸函数的一阶条件…

网络安全ctf比赛_学习资源整理,解题工具、比赛时间、解题思路、实战靶场、学习路线,推荐收藏!...

对于想学习或者参加CTF比赛的朋友来说&#xff0c;CTF工具、练习靶场必不可少&#xff0c;今天给大家分享自己收藏的CTF资源&#xff0c;希望能对各位有所帮助。 CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站&#xff0c;内容齐全&#xff0c;收藏备用。 1、C…

Modbus协议

Modbus协议 1.起源 Modbus由Modicon公司于1979年开发&#xff0c;是一种工业现场总线协议标准。 Modbus通信协议具有多个变种&#xff0c;其中有支持串口&#xff0c;以太网多个版本&#xff0c;其中最著名的是Modbus RTU、Modbus ASCII和Modbus TCP三种 其中Modbus TCP是在施…

Oracle 流stream将删除的数据保存

Oracle 流stream将删除的数据保存 --实验的目的是捕获hr.employees表的删除行&#xff0c;将删除行插入到emp_del表中。 --设置初始化参数 AQ_TM_PROCESSES1 COMPATIBLE9.2.0 LOG_PARALLELISM1 --查看数据库的名称&#xff0c;我的为ora9,将以下的ora9全部替换为你的数据库名称…

【教程向】从零开始创建浏览器插件(三)解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题

第三步&#xff1a;解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题 Chrome 扩展开发中&#xff0c;弹出页面&#xff08;Popup&#xff09;、背景脚本&#xff08;Background Script&#xff09;、内容脚本&#xff08;Content Script&#xff09;各自拥有独立…

微信小程序知识点归纳(一)

前言&#xff1a;适用于有一定基础的前端开发同学&#xff0c;完成从网页开发到小程序开发的知识转换。 先立框架&#xff0c;后砌墙壁 回顾&#xff1a;了解微信小程序开发流程-CSDN博客 初始页面结构&#xff0c;三部分pages、utils、配置&#xff0c;分别存放页面、工具类…

OpenAI Whisper 语音转文本实验

为了实现语音方式与大语言模型的对话&#xff0c;需要使用语音识别&#xff08;Voice2Text&#xff09;和语音输出&#xff08;Text2Voice&#xff09;。感觉这项技术已比较成熟了&#xff0c;国内也有许多的机构开发这项技术&#xff0c;但是像寻找一个方便测试的技术居然还不…

使用Vue调用ColaAI Plus大模型,实现聊天(简陋版)

首先去百度文心注册申请自己的api 官网地址&#xff1a;LuckyCola 注册点开个人中心 查看这个文档自己申请一个ColaAI Plus定制增强大模型API | LuckyColahttps://luckycola.com.cn/public/docs/shares/api/colaAi.html来到vue的页面 写个样式 <template><Header …

C++ | Leetcode C++题解之第79题单词搜索

题目&#xff1a; 题解&#xff1a; class Solution { public:bool exist(vector<vector<char>>& board, string word) {rows board.size();cols board[0].size();for(int i 0; i < rows; i) {for(int j 0; j < cols; j) {if (dfs(board, word, i, …

dnf手游攻略,新手入坑必备!

一、角色创建策略 在DNF手游中&#xff0c;角色创建是玩家初入游戏的首要步骤。为最大化游戏体验和收益&#xff0c;新手玩家通常建议创建三个角色&#xff1a;一个主账号和两个副账号。 主账号选择 主账号的选择应基于玩家个人的喜好和对职业的熟悉程度。无论选择哪个职业&a…

Gone框架介绍17 - 创建一个可运行在生产环境的Web项目

gone是可以高效开发Web服务的Golang依赖注入框架 github地址&#xff1a;https://github.com/gone-io/gone 文档原地址&#xff1a;https://goner.fun/zh/guide/auto-gen-priest.html 请帮忙在github上点个 ⭐️吧&#xff0c;这对我很重要 &#xff1b;万分感谢&#xff01;&a…

视频汇聚管理/安防监控系统EasyCVR如何开启和调用验证码登录接口?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视…

C语言写扫雷游戏(数组和函数实践)

目录 最后是代码啦&#xff01; 手把手教你用C语言写一个扫雷游戏&#xff01; 1.我们搭建一下这个多文件形式的扫雷游戏文件结构 2.在主函数里面设置一个包含游戏框架的菜单 菜单可以方便游戏玩家选择要进行的动作和不断地进行下一局。 3.switch语句连接不同的结果 菜单可…