首页 > 其他分享 >【UniApp】-uni-app-处理项目输入数据(苹果计算器)

【UniApp】-uni-app-处理项目输入数据(苹果计算器)

时间:2023-12-24 23:13:20浏览次数:29  
标签:11 UniApp app params && inputText uni showValue 输入

前言

  • 上一篇文章完成了项目的基本布局,这一篇文章我们来处理一下项目的输入数据
  • 项目的输入数据主要是通过按键来输入的,所以我们需要对按键进行处理
  • 那么我们就来看一下 uni-app-处理项目输入数据

步入正题

  • 在上篇文章中,我在 data 中定义了一个 buttons
  • 每个元素中,有一个 func 属性,这个属性就是告诉程序如果按下的话,需要执行什么操作,这里可以采用 switch 语句来进行处理

好,那么我们就来看一下具体的代码,在上一篇中,我给每一个元素都绑定了一个点击事件,接下来只需要在这个点击事件中进行处理就可以了,代码如下:

<script>
	export default {
		methods: {
			operate(item) {
				const func = item.func;
				const params = item.params;

				switch (func) {
					case "operator":
						this.operator(params);
						break;
					case "inputText":
						this.inputText(params);
						break;
				}
			},
			operator(params) {
				console.log("计算操作");
			},
			inputText(params) {
				console.log("输入操作");
			}
		}
	}
</script>

好,那么我们来看一下效果,点击运算符,控制台输出 计算操作,点击数字,控制台输出 输入操作,效果如下:

首先来处理输入操作,也就是处理输入操作,好了,废话不多说直接肝代码,完成 inputText 方法。

主要处理的逻辑分别为:

  1. 如果输入的是 .,并且如果已经有了 .,那么就什么都不做
if (params == "." && this.showValue.indexOf(".") > -1) return;
  1. 判断当前输入内容长度是否超过 11, 如果超过了,就什么都不做
if (this.showValue.length >= 11) return;
  1. 如果输入的不是 .,并且如果当前输入内容是 0,那么就把当前输入内容替换为输入的内容
  2. 如果是其它内容,那么就追加到当前输入内容的后面
if (params != "." && this.showValue == "0") {
    this.showValue = params + "";
} else {
    // 如果是其它内容, 那么就追加
    this.showValue += params + "";
}
  1. 如果是整数,还需要添加位数符号,比如 1,000,000
if (params != "." && this.showValue.indexOf(".") == -1) {
    let num = parseInt(this.showValue.replaceAll(",", ""));
    this.showValue = num.toLocaleString();
}

好了理清楚大致的思路之后,接下来就是将思路转变为代码即可,最终代码如下:

inputText(params) {
    // console.log("输入操作");
    // 如果输入的是., 并且已经有., 那么什么都不做
    if (params == "." && this.showValue.indexOf(".") > -1) return;
    // 判断当前输入内容长度是否超过11, 超过11也什么都不做
    if (this.showValue.length >= 11) return;
    // 如果输入的不是., 并且当前没有数据, 那么就直接赋值
    if (params != "." && this.showValue == "0") {
        this.showValue = params + "";
    } else {
        // 如果是其它内容, 那么就追加
        this.showValue += params + "";
    }

    // 如果是整数, 还需要添加位数符号
    if (params != "." && this.showValue.indexOf(".") == -1) {
        let num = parseInt(this.showValue.replaceAll(",", ""));
        this.showValue = num.toLocaleString();
    }
}

这里最为关键的代码就是添加位数符号, 通过 replaceAll(",", ""), 替换为空字符串, 然后通过 parseInt 将字符串转换为整数, 最后通过 toLocaleString 将整数转换为带有位数符号的字符串, 这样就完成了整数的位数符号添加。

运行测试效果:

End

  • 如果你有任何问题或建议,欢迎在下方留言,我会尽快回复
  • 如果你觉得本文对你有帮助,欢迎点赞、收藏,你的支持是我写作的最大动力

标签:11,UniApp,app,params,&&,inputText,uni,showValue,输入
From: https://www.cnblogs.com/BNTang/p/17925026.html

相关文章

  • Unity获取用户输入
    Unity获取用户输入基本概念​unity​中使用Input.GetAxis()​或Input.GetAxisRaw()​接口来获得用户输入,这两个接口的返回值取值范围为[-1,1],具有以下特性:该值的含义取决于输入控制的类型,例如,对于游戏杆的水平轴,值为1表示游戏杆向右推到底,值为-1表示游戏杆向左推到底;值为......
  • App.Config文件复杂对象自动映射
    Nerdle.AutoConfig是什么.NetFramework使用app.configXML文件作为默认的配置文件,visualstudio也提供很方便的配置管理功能,甚至可以自动将配置项映射到Settings类,但这仅限于简单的数据类型,比如string/int等.对于复杂类型,需要我们自己写映射代码才行.Nerdle.......
  • WorkPlus超级APP助力企业节省IT人力成本,实现快速移动化
    在信息化时代,移动应用已经成为企业发展的重要组成部分。然而,开发和维护原生客户端的成本却相对较高,需要大量的iOS、安卓和桌面端工程师。为了解决这一问题,WorkPlus作为一个功能完备的超级APP,为企业节约了大量的IT人力成本。通过使用WorkPlus,企业不需要额外雇佣iOS、安卓和桌面端工......
  • MappingJackson2HttpMessageConverter使用及jackson配置原理和避坑说明
    转载自:https://blog.csdn.net/Heron22/article/details/109512976MappingJackson2HttpMessageConverter消息转换器创建和生效原理HttpMessageConverters对象的创建使用WebMvcConfigurationSupport配置时转换器创建过程使用WebMvcAutoConfiguration配置时转换器创建过......
  • 如何通过蛋壳Uploader把ipa文件上传到App Store教程步骤
    在移动应用开发的过程中,将ipa文件上传至AppStore是非常关键的一环。对于那些没有Mac电脑的开发者来说,这一步骤可能会成为一个挑战。幸运的是,有一个名为“蛋壳Uploader”的在线工具,可以帮助开发者在没有Mac的情况下,轻松上传ipa文件到AppStore。一、准备工作在使用蛋壳Uploader......
  • 【UniApp】-uni-app-项目实战页面布局(苹果计算器)
    前言经过前面的文章介绍,基本上UniApp的内容就介绍完毕了那么从本文开始,我们就开始进行一个项目的实战这次做的项目是苹果计算器,这个项目的难度不是很大,但是也不是很简单,适合练手创建项目打开HBuilderX,点击左上角文件->新建->项目:搭建基本布局项目创建完毕之......
  • uniapp框架——初始化vue3项目(搭建ai项目第一步)
    文章目录⭐前言......
  • Unity 刷新文本
    privatevoidrefreshContentSizeFitters(){//获取contentParent下的所有ContentSizeFitter组件ContentSizeFitter[]contentSizeFitters=gameObject.GetComponentsInChildren<ContentSizeFitter>();for(inti=0;i<contentSize......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发
    https://www.cnblogs.com/wuhuacong/tag/WPF/ 在我们的SqlSugar的开发框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基于UniApp+Vue+ThorUI的移动前端几个前端处理,基本上覆盖了我们日常的应用模式了,本篇随笔进一步介绍前端应用的领域,研究集成WPF的应用端,循序渐进介绍基......
  • 童年神机小霸王(七) Mapper
    Mappermapper,这个概念来源于memorymapping,又叫做MemoryManagementCircuit,它是解决地址映射的一种电路,简单来说就是决定物理内存如何映射到CPU或者PPU的地址空间。mapper可以用来支持增加卡带的RAM甚至支持额外的音频通道,但更一般的目的就是控制物理内存到地址空间的映......