使用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.pswp.cn/web/12288.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12288.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12288.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Javaer學習Python】 1、Django安裝

安裝 Python 和 PyCharm 的方法就略過了&#xff0c;附一個有效激活PyCharm的鏈接&#xff1a;https://www.quanxiaoha.com/pycharm-pojie/pycharm-pojie-20241.html 1、安裝Django # 安裝Django pip install Django# 查看當前版本 python -m django --version 5.0.62、創建項…

HTML常用標簽-表格標簽

表格標簽 1 常規表格2 單元格跨行3 單元格跨行 1 常規表格 table標簽 代表表格 thead標簽 代表表頭 可以省略不寫 tbody標簽 代表表體 可以省略不寫 tfoot標簽 代表表尾 可以省略不寫 tr標簽 代表一行 td標簽 代表行內的一格 th標簽 自帶加粗和居中效果的td 代碼 <h…

探索數據結構:堆的具體實現與應用

?? 歡迎大家來到貝蒂大講堂?? &#x1f388;&#x1f388;養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; 所屬專欄&#xff1a;數據結構與算法 貝蒂的主頁&#xff1a;Betty’s blog 1. 堆的概念 堆(Heap)是計算機科學中一類特殊的數據結構。堆通常是一個…

C++ QT設計模式 (第二版)

第3章 Qt簡介 3.2 Qt核心模塊 Qt是一個大庫&#xff0c;由數個較小的庫或者模塊組成&#xff0c;最為常見的如下&#xff1a;core、gui、xml、sql、phonon、webkit&#xff0c;除了core和gui&#xff0c;這些模塊都需要在qmake的工程文件中啟用 QTextStream 流&#xff0c;Qdat…

在buildroot中自動給kernel打補丁

我的這個buildroot是管理在git上面的&#xff0c;所以這里我直接使用git format-patch 生成patch。 下面我詳細列舉一下步驟 1&#xff0c;將沒有修改的kernel復制出來一份&#xff0c;進入kernel目錄&#xff0c;執行git init&#xff0c;add所有文件并commit 2&#xff0c…

2024年高考倒計時精品網頁

2024年高考倒計時精品網頁 前言效果圖部分代碼領取源碼下期更新預報 前言 隨著季風輕輕掠過&#xff0c;歲月如梭&#xff0c;再次迎來了這個屬于青春與夢想交匯的時刻——高考。這是一場知識的較量&#xff0c;更是一次意志的考驗。在這最后的沖刺階段&#xff0c;每一刻都顯…

可視化 FlowChart 0.4.1 最強的拖拽組件

主要解決以及目標&#xff1a; ti-flowchart 能滿足 二次開發的大部分需求。 下發GIF圖可見&#xff0c;左邊的模塊A 由二次開發人員設計&#xff0c;通過向flowchart注冊模塊Dom&#xff0c;實現符合拖拽&#xff0c;編輯&#xff0c;布局&#xff0c;以及響應事件上拋。 實…

vaspkit 畫 Charge-Density Difference

(echo 314;echo $(cat 1))|vaspkit 文件1提前寫好使用的CHGCAR路徑 SPIN_DW.vasp ../ML2scf/SPIN_DW.vasp ../ML1scf/SPIN_DW.vasp POSite and negative 默認為blue,and 青色 (RGB 30 245 245) 正值&#xff1a;blue 。負值&#xff1a;青色 RGB 30 245 245。 提示&…

(深度估計學習)Win11復現DepthFM

目錄 1. 系統配置2. 拉取代碼&#xff0c;配置環境3.開始深度預測4.運行結果 論文鏈接&#xff1a;https://depthfm.github.io/ 講解鏈接&#xff1a;https://www.php.cn/faq/734404.html 1. 系統配置 本人系統&#xff1a;Win11 CUDA12.2 python3.11.5 這里附上幾個CUDA安裝鏈…

[Cesium]Cesium基礎學習——Primitive

Cesium開發高級篇 | 01空間數據可視化之Primitive - 知乎 Primitive由兩部分組成&#xff1a;幾何體&#xff08;Geometry&#xff09;和外觀&#xff08;Appearance&#xff09;。幾何體定義了幾何類型、位置和顏色&#xff0c;例如三角形、多邊形、折線、點、標簽等&#xff…

EM算法與變分推斷

符號說明 x x x&#xff1a;已觀測變量的集合 { x 1 , x 2 , x 3 , . . . , x N } \{x_1,x_2,x_3,...,x_N\} {x1?,x2?,x3?,...,xN?}&#xff0c;長度為 N N N z z z&#xff1a;隱變量&#xff08;未觀測變量&#xff09; θ \theta θ&#xff1a;分布參數 ( x , z ) (x,…

pdffactory pro8.0虛擬打印機(附注冊碼)

PdfFactory pro是一款非常受歡迎的PDF虛擬打印機&#xff0c;可以幫助用戶將你的其他文檔保存為PDF格式。請為用戶提供打印/發送/加密等多種實用功能&#xff0c;以及一套完善的PDF打印方案。 使用說明 下載pdfFactory Pro壓縮包&#xff0c;解壓后&#xff0c;雙擊exe文件&am…

LeetCode_LCR002做題總結(可變字符序列使用)

LCR 002. 二進制求和 方法一方法二遺落知識點字符串長度stringStringBuffer && StringBuilder 方法一 轉換成十進制數&#xff0c;求和之后再轉換成二進制數 class Solution {public String addBinary(String a, String b) {return Integer.toBinaryString(Integer.p…

算法提高之木棒

算法提高之木棒 核心思想&#xff1a;dfs 剪枝優化 1.搜索順序優化&#xff1a;len從小到大遍歷2**.剪枝(失敗后)&#xff1a;** (1) 跳過所有和第i根木棍相同長度的木棍(2) 如果當前木棍是新木棒的第一根就失敗了 則之后不會搜到方案 return false(3) 下一根失敗但是上一根成…

java獲取到泛型信息后,需要包裝到另一個父類型中。比如讀取類型R,包裝成Res<R>

問題 對于json解析來說&#xff0c;我們一般是通過jackson的TypeReference或者XXX.class來制定類型&#xff08;其他json框架同理&#xff09;&#xff0c;比如下列代碼&#xff1a; ResponseBody<XxxClass> body JsonUtils.parseObject(response, new TypeReference&…

vue + element-plus項目做管理系統常用的組件,以及一些方便開發的設置

1.簡化路徑 //vite.consfig.ts import { defineConfig, ConfigEnv } from vite import vue from vitejs/plugin-vue import path from path export default defineConfig(({ command }: ConfigEnv) > {return {plugins: [vue(),],resolve: {alias: {: path.resolve(__dirn…

EEL中 python端的函數名是如何傳遞給js端的

python端的函數名是如何傳遞給js端的 核心步驟&#xff1a;將函數名列表注入到動態生成的 eel.js 中&#xff0c;這樣前端一開始引用的eel.js本身已經包含有py_function的函數名列表了。你打開開發者工具看看瀏覽器中的 eel.js文件源代碼就知道了。 具體實現&#xff1a; # 讀…

全面解析OpenAI的新作——GPT-4o

5月14日凌晨1點、太平洋時間的上午 10 點&#xff0c;OpenAI的GPT-4o的橫空出世&#xff0c;再次鞏固了其作為行業顛覆者的地位。GPT-4o的發布不僅僅是一個產品的揭曉&#xff0c;它更像是向世界宣告AI技術已邁入了一個全新的紀元&#xff0c;連OpenAI的領航者薩姆奧特曼也不禁…

樓宇智慧公廁建設新方案-集成更簡單!成本價更低!

在當今的大廈和寫字樓中&#xff0c;公廁面臨著諸多痛點。 辦公樓公廁常常存在廁位難找的問題&#xff0c;使用者不得不花費時間逐一查看&#xff0c;導致效率低下&#xff1b;環境質量也令人擔憂&#xff0c;異味、臟污等情況時有發生&#xff0c;影響使用者的心情和健康&…

【simulink】Scrambling 加擾

https://ww2.mathworks.cn/help/comm/ug/additive-scrambling-of-input-data-in-simulink.html 草圖 simulink 代碼圖