日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

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

發(fā)布時(shí)間:2023/12/29 windows 48 coder
生活随笔 收集整理的這篇文章主要介紹了 【UniApp】-uni-app-处理项目输入数据(苹果计算器) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

  • 上一篇文章完成了項(xiàng)目的基本布局,這一篇文章我們來處理一下項(xiàng)目的輸入數(shù)據(jù)
  • 項(xiàng)目的輸入數(shù)據(jù)主要是通過按鍵來輸入的,所以我們需要對(duì)按鍵進(jìn)行處理
  • 那么我們就來看一下 uni-app-處理項(xiàng)目輸入數(shù)據(jù)

步入正題

  • 在上篇文章中,我在 data 中定義了一個(gè) buttons
  • 每個(gè)元素中,有一個(gè) func 屬性,這個(gè)屬性就是告訴程序如果按下的話,需要執(zhí)行什么操作,這里可以采用 switch 語(yǔ)句來進(jìn)行處理

好,那么我們就來看一下具體的代碼,在上一篇中,我給每一個(gè)元素都綁定了一個(gè)點(diǎn)擊事件,接下來只需要在這個(gè)點(diǎn)擊事件中進(jìn)行處理就可以了,代碼如下:

<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("計(jì)算操作");
			},
			inputText(params) {
				console.log("輸入操作");
			}
		}
	}
</script>

好,那么我們來看一下效果,點(diǎn)擊運(yùn)算符,控制臺(tái)輸出 計(jì)算操作,點(diǎn)擊數(shù)字,控制臺(tái)輸出 輸入操作,效果如下:

首先來處理輸入操作,也就是處理輸入操作,好了,廢話不多說直接肝代碼,完成 inputText 方法。

主要處理的邏輯分別為:

  1. 如果輸入的是 .,并且如果已經(jīng)有了 .,那么就什么都不做
if (params == "." && this.showValue.indexOf(".") > -1) return;
  1. 判斷當(dāng)前輸入內(nèi)容長(zhǎng)度是否超過 11, 如果超過了,就什么都不做
if (this.showValue.length >= 11) return;
  1. 如果輸入的不是 .,并且如果當(dāng)前輸入內(nèi)容是 0,那么就把當(dāng)前輸入內(nèi)容替換為輸入的內(nèi)容
  2. 如果是其它內(nèi)容,那么就追加到當(dāng)前輸入內(nèi)容的后面
if (params != "." && this.showValue == "0") {
    this.showValue = params + "";
} else {
    // 如果是其它內(nèi)容, 那么就追加
    this.showValue += params + "";
}
  1. 如果是整數(shù),還需要添加位數(shù)符號(hào),比如 1,000,000
if (params != "." && this.showValue.indexOf(".") == -1) {
    let num = parseInt(this.showValue.replaceAll(",", ""));
    this.showValue = num.toLocaleString();
}

好了理清楚大致的思路之后,接下來就是將思路轉(zhuǎn)變?yōu)榇a即可,最終代碼如下:

inputText(params) {
    // console.log("輸入操作");
    // 如果輸入的是., 并且已經(jīng)有., 那么什么都不做
    if (params == "." && this.showValue.indexOf(".") > -1) return;
    // 判斷當(dāng)前輸入內(nèi)容長(zhǎng)度是否超過11, 超過11也什么都不做
    if (this.showValue.length >= 11) return;
    // 如果輸入的不是., 并且當(dāng)前沒有數(shù)據(jù), 那么就直接賦值
    if (params != "." && this.showValue == "0") {
        this.showValue = params + "";
    } else {
        // 如果是其它內(nèi)容, 那么就追加
        this.showValue += params + "";
    }

    // 如果是整數(shù), 還需要添加位數(shù)符號(hào)
    if (params != "." && this.showValue.indexOf(".") == -1) {
        let num = parseInt(this.showValue.replaceAll(",", ""));
        this.showValue = num.toLocaleString();
    }
}

這里最為關(guān)鍵的代碼就是添加位數(shù)符號(hào), 通過 replaceAll(",", ""), 替換為空字符串, 然后通過 parseInt 將字符串轉(zhuǎn)換為整數(shù), 最后通過 toLocaleString 將整數(shù)轉(zhuǎn)換為帶有位數(shù)符號(hào)的字符串, 這樣就完成了整數(shù)的位數(shù)符號(hào)添加。

運(yùn)行測(cè)試效果:

End

  • 如果你有任何問題或建議,歡迎在下方留言,我會(huì)盡快回復(fù)
  • 如果你覺得本文對(duì)你有幫助,歡迎點(diǎn)贊、收藏,你的支持是我寫作的最大動(dòng)力

總結(jié)

以上是生活随笔為你收集整理的【UniApp】-uni-app-处理项目输入数据(苹果计算器)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。