实现el-input-number数字框带单位

实现的效果展示,可以是前缀单位,也可以是后缀单位。实现的思路就是动态修改伪元素 ::before 和 ::after 的 content值

实现二次封装数字框的代码如下:

<template><el-input-numberref="inputNumber"v-model="inputValue"clearable:controls="false":data-content="showPendAttr.value"v-bind="$attrs"class="c-input-number c-input-number-pend":class="{'pend-before': showPendAttr.pend === pendEnum.PRE,'pend-after': showPendAttr.pend === pendEnum.AFTER}"></el-input-number>
</template>
<script lang="ts" setup>
import { ref, computed } from "vue";
enum pendEnum {PRE = "pre", // 前置单位AFTER = "after" // 后置单位
}
type Props = {modelValue: any;pendAttr?: { [key: string]: any };
};
const props = withDefaults(defineProps<Props>(), {modelValue: ""
});
const emit = defineEmits(["update:modelValue", "search"]);const inputNumber = ref();// 处理input输入框双向绑定
const inputValue = computed({get: () => {return props.modelValue;},set: (val: any) => {emit("update:modelValue", val);}
});
// 这里是处理pendAttr参数的,用新传入的pendAttr的参数替换默认的
const showPendAttr = computed(() => {let defaultPendAttr: { [key: string]: any } = { pend: pendEnum.PRE, value: ""};defaultPendAttr = { ...defaultPendAttr, ...props.pendAttr };return defaultPendAttr;
});
defineExpose({inputNumber
});
</script>
<style lang="scss" scoped>
.c-input-number {position: relative;
}
.c-input-number-pend::before,
.c-input-number-pend::after {position: absolute;top: 50%;z-index: 1;display: inline-block;font-size: 13px;text-align: center;transform: translateY(-50%);
}
.pend-before::before {left: 12px;content: attr(data-content);
}
.pend-after::after {right: 12px;content: attr(data-content); // 可以获取自定义传值实现动态修改content
}// 以下代码是解决单位重叠
.pend-before {:deep(.el-input__wrapper) {padding-left: 32px !important;}
}
.pend-after {:deep(.el-input__wrapper) {padding-right: 32px !important;}
}
</style>

使用:

<el-form-item label="入款金额:" prop="money"><c-input-numberv-model="configForm.money":min="0":pendAttr="{ pend: 'pre', value: '$' }"placeholder="请输入入款金额"style="width: 300px"</c-input-number>
</el-form-item>

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

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

相关文章

opencv-直方图

直方图是一种对图像亮度分布的统计表示&#xff0c;它显示了图像中每个灰度级别的像素数量。在OpenCV中&#xff0c;你可以使用cv2.calcHist() 函数计算直方图。 以下是一个简单的示例&#xff0c;演示如何计算和绘制图像的直方图&#xff1a; import cv2 import numpy as np …

【C++容器】优先级队列 仿函数 反向迭代器

优先级队列&#xff0c;仿函数&#xff0c;反向迭代器 优先级队列认识优先级队列模拟实现优先级队列 浅谈仿函数仿函数的大致了解仿函数的实现 反向迭代器什么是反向迭代器&#xff1f;反向迭代器的实现 结语 优先级队列 认识优先级队列 优先级队列&#xff08;priority_queue…

Doris分区与分桶(八)

接上篇----------Doris 建表示例 Doris 支持两层的数据划分。第一层是 Partition&#xff0c;支持 Range 和 List 的划分方式。第二层是 Bucket&#xff08;Tablet&#xff09;&#xff0c;仅支持 Hash 的划分方式。 也可以仅使用一层分区。使用一层分区时&#xff0c;只支持…

低成本打造便携式无线网络攻防学习环境

1.摘要 一直以来, 无线网络安全问题与大众的个人隐私息息相关, 例如: 为了节省流量, 连接到一个看似安全的免费WiFi, 在使用过程中泄露自己的各类密码信息甚至银行卡账号密码信息。随着家用智能电器的普及, 家中的各类智能设备连入家里的无线网络, 却突然失灵, 甚至无法正常连…

模拟Spring源码思想,手写源码,理解注解

1、BeanDefinition package com.csdn.myspring; import lombok.AllArgsConstructor; import lombok.Data; Data AllArgsConstructor public class BeanDefinition {private String beanName;private Class beanClass; }2、扫描包的工具类MyTools package com.csdn.myspring; im…

@Scheduled注解 定时任务讲解

用于在Java Spring框架中定时执行特定任务的注解 Scheduled&#xff0c;它能够指定方法在特定时间间隔或特定时间点执行。默认参数是cron&#xff0c;cron参数被用来定义一个Cron表达式&#xff0c;它代表了任务执行的时间规则 参数如下 Cron 这是是一种时间表达式&#xff…

【应用程序启动过程-三种加载控制器的方式-上午内容复习 Objective-C语言】

一、我们先来回忆一下,上午所有内容 1.首先呢,我们先说的是这个“应用程序启动过程”, 应用程序启动过程里面,有三方面内容 1)UIApplication对象介绍 2)AppDelegate对象介绍 3)应用程序启动过程 现在不知道大家对这个应用程序启动过程有印象吗, 2.首先,这个UIAp…

MySQL数据库时间计算的用法

今天给大家分享如何通过MySQL内置函数实现时间的转换和计算&#xff0c;在工作当中&#xff0c;测试人员经常需要查询数据库表的日期时间&#xff0c;但发现开发人员存入数据库表的形式都是时间戳形式&#xff0c;不利于测试人员查看&#xff0c;测试人员只能利用工具对时间戳进…

【 顺序表经典算法—移除元素和合并两个有序数组】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 经典算法OJ题1&#xff1a; 移除元素 解法一、逐个判断 解法二、双指针覆盖 经典算法OJ题2&#xff1a; 合并两个有序数组 OJ题分为两个类型&#xff1a; 总结 前言…

MAX/MSP SDK学习07:list传递

实现自定义Obejct&#xff0c;要求将传入的一组数据100后传出。 #include "ext.h" #include "ext_obex.h" typedef struct _listTrans {t_object ob;void* outLet;t_atom* fArr;long listNum;} t_listTrans;void* listTrans_new(t_symbol* s, long arg…

14.Python 模块

目录 1. 使用模块2. 使用包3. 常用模块3.1 日期和时间3.2 伪随机数3.3 摘要算法3.4 JSON 处理3.5 图像处理 模块是Python用来组织代码的一种方法&#xff0c;包是Python用来组织模块的一种方法。 1. 使用模块 Python 把能够相互包含&#xff0c;且有组织的代码段称为模块&…

.NET面试题1

1.什么是C#&#xff1f; C#&#xff08;读作"C sharp"&#xff09;是一种通用的、面向对象的编程语言&#xff0c;由Microsoft开发。它是一种静态类型语言&#xff0c;支持强类型检查和面向对象编程&#xff08;OOP&#xff09;的概念。C#主要用于开发Windows应用程序…

Bug等级划分

Bug是指在程序或系统中存在的错误、缺陷或异常&#xff0c;是由于编码错误、设计问题、逻辑错误或其他因素导致的。 常见的Bug分类方法 功能性Bug与软件的功能有关&#xff0c;软件无法正常工作、功能与需求不符或功能执行不正确。 用户界面Bug与软件的用户界面有关&#xff…

Unity中Shader双向反射分布函数BRDF

文章目录 前言一、渲染方程二、什么是BxDF1、BSSRDF2、BRDF3、BTDF4、BSDF 三、迪士尼原则的BRDF四、迪士尼原则的BRDF的参数五、在Unity中看一下默认Shader的这些参数六、在这里记录一下使用 Blender 和 SubstancePainter 的流程1、在Blender中导出模型为 .obj 格式2、在Subst…

Android WMS—— Surace管理 (二十)

WMS 负责创建 Surface 以及对 Surface 的摆放工作,之后将 Surface 提交给SurfaceFlinger 进行合并。在 App 层也创建了一个 Surface 对象,但是那个是空对象,用于 WMS 的填充。 一、Surface的创建 首先 APP 层在 ViewRootImpl 的 relayoutWindow() 方法中发起创建任务。 1、…

Go 实现网络代理

使用 Go 语言开发网络代理服务可以通过以下步骤完成。这里&#xff0c;我们将使用 golang.org/x/net/proxy 包来创建一个简单的 SOCKS5 代理服务作为示例。 步骤 1. 安装 golang.org/x/net/proxy 包 使用以下命令安装 golang.org/x/net 包&#xff0c;该包包含 proxy 子包&am…

天软特色因子看板 (2023.11 第12期)

该因子看板跟踪天软特色因子A05006(近一月单笔流入流出金额之比(%)&#xff0c;该因子为近一个月单笔流入流出金额之比(%)均值因子&#xff0c;用以刻画在 市场日内分时成交中流入、流出成交金额的差异性特点&#xff0c;发掘市场主力资金的作用机制。 今日为该因子跟踪第12期&…

expect脚本在自动化部署中的具体应用案例

#expect脚本在自动化部署中的具体应用 expect脚本是一个非常好的交互式应用脚本&#xff0c;在自动化部署中&#xff0c;可以使用这个脚本来实现全自动的自动化部署。下面是一些具体的应用案例。 场景一&#xff1a;自动安装mysql 可以使用expect脚本来实现mysql自动安装&…

Windows平台Unity下实现camera场景推送RTMP|轻量级RTSP服务|实时录像

技术背景 我们在对接Unity平台camera场景采集的时候&#xff0c;除了常规的RTMP推送、录像外&#xff0c;还有一些开发者&#xff0c;需要能实现轻量级RTSP服务&#xff0c;对外提供个拉流的RTSP URL。 目前我们在Windows平台Unity下数据源可采集到以下部分&#xff1a; 采集…

@PostConstruct虽好,请勿乱用

1.问题说明 在日常的业务开发中&#xff0c;有时会利用PostConstruct在容器启动时执行一些任务。例如&#xff1a; PostConstruct public void init(){System.out.println("service 初始化..............."); }一般情况这没什么问题&#xff0c;但最近一个同事在做…