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

vue3修改带小数点的价格数字:小数点的前后数字,要分别显示成不同颜色和大小!已经封装成组件了!

需求:

修改带小数点的价格数字:小数点的前后数字,要分别显示成不同颜色和大小!已经封装成组件了!

效果:

前面大,后面小

代码:

组件:

<!--修改小数点前后数字不同颜色和大小的组件-->
<template><view class="price-container"><text class="current-price"><text class="price-icon"> ¥</text><!-- 显示小数点前的价格部分,应用传入的颜色和字体大小 --><text :style="{ color: integerColor, fontSize: integerFontSize }" class="price-integer">{{ integerPart }}</text><text class="dot">.</text><!-- 显示小数点后的价格部分,应用传入的颜色和字体大小 --><text :style="{ color: decimalColor, fontSize: decimalFontSize }" class="price-decimal">{{ decimalPart }}</text></text></view>
</template><script setup>
// 导入所需的 Vue API
import { computed, defineProps } from 'vue';// 定义组件的 props
const props = defineProps({// 价格值,必填项price: {type: Number,required: true},// 整数部分字体颜色,默认黑色integerColor: {type: String,default: '#000000'},// 整数部分字体大小,默认 24pxintegerFontSize: {type: String,default: '24px'},// 小数部分字体颜色,默认黑色decimalColor: {type: String,default: '#000000'},// 小数部分字体大小,默认 16pxdecimalFontSize: {type: String,default: '16px'}
});// 确保 price 是一个有效的数字
const numericPrice = computed(() => {return Number(props.price) || 0;
});// 计算价格的整数部分
const integerPart = computed(() => {const priceStr = numericPrice.value.toFixed(2); // 保证小数点后有两位return priceStr.split('.')[0]; // 获取小数点前的部分
});// 计算价格的小数部分
const decimalPart = computed(() => {const priceStr = numericPrice.value.toFixed(2); // 保证小数点后有两位return priceStr.split('.')[1]; // 获取小数点后的部分
});</script><style lang="scss" scoped>
/* 定义价格容器的布局 */
.price-container {display: flex;align-items: baseline; /* 对齐基线,使得不同字体大小的文本对齐 */
}/* 定义当前价格的样式 */
.current-price {display: flex;align-items: baseline; /* 对齐基线,使得不同字体大小的文本对齐 */.price-icon{font-size: 24rpx;margin-right: 2rpx;}.dot{color: #333333;}
}/* 前面的整数,默认样式可以在这里定义 */
.price-integer {/* 这里可以设置默认样式 */color: #333333;}//后面的小数点
.price-decimal {/* 这里可以设置默认样式 */color: #333333;
}
</style>

使用组件:

灰色:

     <PriceDisplay:price="item.price"integerColor="#333333"integerFontSize="36rpx"decimalColor="#333333"decimalFontSize="24rpx"class="priceContainerWrapper"/>

彩色:

   <PriceDisplay:price="123.45"integerColor="#FF5733"integerFontSize="30px"decimalColor="#33CFFF"decimalFontSize="18px"/>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于 Java Supplier与Predicate 封装自动重试机制通用接口
  • 指针函数和函数指针
  • 企业级OV通配符/泛域名https证书申请
  • 大模型检索X一键成片,巴黎奥运的AI新演绎
  • 敏捷与DevOps有什么不同?
  • pyflink的row
  • 渗透小游戏,各个关卡的渗透实例
  • 指针的指针作为形参实测
  • 【组合数学】【Python】【小练习】一、斯特灵近似式求阶乘
  • C++ 基础入门篇
  • 一篇模块化RAG之最新全面系统性综述
  • 【必看!】阿里云推出QWen-7B和QWen-7b-Chat,开放免费商用!
  • MySQL--数据库备份
  • Snooping Coherence Protocols
  • 【langchain学习】使用JsonOutputParser让大模型生成结构化JSON数据
  • ES6指北【2】—— 箭头函数
  • 时间复杂度分析经典问题——最大子序列和
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Android 架构优化~MVP 架构改造
  • CODING 缺陷管理功能正式开始公测
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ES6之路之模块详解
  • gcc介绍及安装
  • interface和setter,getter
  • JavaScript新鲜事·第5期
  • JS数组方法汇总
  • LeetCode算法系列_0891_子序列宽度之和
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python学习笔记 字符串拼接
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 工作手记之html2canvas使用概述
  • 关于List、List?、ListObject的区别
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • -- 数据结构 顺序表 --Java
  • 译自由幺半群
  • 运行时添加log4j2的appender
  • const的用法,特别是用在函数前面与后面的区别
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • raise 与 raise ... from 的区别
  • ​iOS实时查看App运行日志
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #define
  • (1)SpringCloud 整合Python
  • (2020)Java后端开发----(面试题和笔试题)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析