用css繪制收銀鍵盤

最近需求說需要自己弄個收銀鍵盤,于是乎直接上手搓

主要基于Vue3寫的,主要是CSS

<template><view class="container"><view class="info"><image class="img" src="" mode=""></image><text class="name">達達</text></view><view class="inputBox"><view class="concent flex flex_just_sb flex_items_c"><view class="insideBox"><text class="title">付款金額</text><view class="price"><text class="value">¥</text><text class="number">{{payMuch}}</text></view></view></view></view><div class="btn"><view class="btn_box"><view class="line_one"><button @click="_handleKeyPress('1')" type="primary">1</button><button @click="_handleKeyPress('2')" type="primary">2</button><button @click="_handleKeyPress('3')" type="primary">3</button><button @click="_handleKeyPress('D')" type="primary">清除</button></view><view class="btn_bottom"><view class="line_two"><view class="line-left"><view class="line_box"><view class="line_two"><button @click="_handleKeyPress('4')" type="primary">4</button><button @click="_handleKeyPress('5')" type="primary">5</button><button @click="_handleKeyPress('6')" type="primary">6</button></view><view class="line_three"><button @click="_handleKeyPress('7')" type="primary">7</button><button @click="_handleKeyPress('8')" type="primary">8</button><button @click="_handleKeyPress('9')" type="primary">9</button></view><view class="line_four"><button type="primary"></button><button @click="_handleKeyPress('0')" type="primary">0</button><button @click="_handleKeyPress('.')" type="primary">.</button></view></view></view><view class="line-right"><button type="primary" @click="_handleKeyPress('S')">優惠<br />買單</button></view></view></view></view></div></view>
</template><script setup>import {reactive,ref} from 'vue';import {preferentialPay} from '@/api/store'import {onLoad,onShow} from '@dcloudio/uni-app'const payMuch = ref('0')const payPrice = ref(0)const confirmOrderStatus = ref(false)const isdisabled = ref(false)//處理按鍵function _handleKeyPress(num) {//不同按鍵處理邏輯// -1 代表無效按鍵,直接返回if (num == -1) return false;switch (String(num)) {//小數點case ".":_handleDecimalPoint();break;//刪除鍵case "D":_handleDeleteKey();break;//確認鍵case "S":_handleConfirmKey();break;default:_handleNumberKey(num);break;}}//處理數字function _handleNumberKey(num) {let S = payMuch.value;//如果有小數點且小數點位數不小于2if (S.indexOf(".") > -1 && S.substring(S.indexOf(".") + 1).length < 2) payMuch.value = S + num;//沒有小數點if (!(S.indexOf(".") > -1)) {//如果第一位是0,只能輸入小數點if (num == 0 && S.length == 0) payMuch.value = "0.";else {if (S.length && Number(S.charAt(0)) === 0) {payMuch.value = num;return;}payMuch.value = S + num;}}}function _handleConfirmKey() {let S = payMuch.value;//未輸入if (!S.length || Number(S) === 0) {showTotal("您目前未輸入!");return false;}//將 8. 這種轉換成 8.00if (S.indexOf(".") > -1 && S.indexOf(".") === S.length - 1) S = Number(S.substring(0, S.length - 1)).toFixed(2);//保留兩位S = Number(S).toFixed(2);confirmOrder();}//處理小數點函數function _handleDecimalPoint() {//如果包含小數點,直接返回if (payMuch.value.indexOf(".") > -1) return false;//如果小數點是第一位,補0if (!payMuch.value.length) payMuch.value = "0.";//如果不是,添加一個小數點else payMuch.value = payMuch.value + ".";}//處理刪除鍵function _handleDeleteKey() {let S = payMuch.value;//如果沒有輸入,直接返回if (S.length <= 1) return (payMuch.value = "0");//否則刪除最后一個payMuch.value = S.substring(0, S.length - 1);}async function toPayMethods(){const {data,result,msg} = await preferentialPay({// 處理你需要處理的支付邏輯})}function showTotal(e) {uni.showToast({title: e,icon: 'none',duration: 2000,mask: true})}function confirmOrder() {var val = payMuch.value;if (val && val > 0) {payPrice.value = val;toPayMethods();confirmOrderStatus.value = true;isdisabled.value = true;} else {showTotal('請輸入正確的付款金額!')confirmOrderStatus.value = false;isdisabled.value = false;}}
</script><style lang="scss" scoped>.container {.info {display: flex;align-items: center;justify-content: center;padding-top: 40upx;.img {background: greenyellow;width: 80upx;height: 80upx;border-radius: 50%;}.name {font-weight: bold;font-size: 32upx;color: #323233;line-height: 48upx;padding-left: 20upx;}}.inputBox {// margin-top: 20upx;width: 90vw;min-height: 100upx;background: #fff;border: 0.0625upx solid #999;// border-radius: 0.375rem;margin: 40upx auto;padding: 0 12upx;line-height: 100upx;.concent {.insideBox {display: flex;align-items: center;justify-content: space-between;width: 100%;.title {// display: flex;width: 160upx;font-weight: 500;font-size: 40upx;color: #323233;line-height: 36upx;text-align: right;opacity: 0.6;}.price {display: flex;align-items: flex-end;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;.value {font-weight: 500;font-size: 30upx;color: #323233;text-align: left;}.number {font-weight: 500;font-size: 48upx;color: #323233;text-align: left;&:last-child {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 450upx;}}}}}}.btn {background: #fff;position: fixed;bottom: 0;.btn_box {border-top: solid 0.0625rem #ccc;.line_one {display: flex;button {width: 5.8125rem;// height: 3.75rem;font-size: 2rem;background: none;color: #333;border-radius: 0;padding: 0;border: none;border-right: solid 0.0625rem #ccc;}button:last-child {border-right: none;}}.btn_bottom {.line_two {display: flex;.line-left {.line_box {.line_two {display: flex;border-top: solid 0.0625rem #ccc;button {width: 5.8rem;// height: 3.75rem;font-size: 2rem;background: none;color: #333;border-radius: 0;padding: 0;border: none;border-right: solid 0.0625rem #ccc;}button:last-child {border-right: none;}}.line_three {border-top: solid 0.0625rem #ccc;display: flex;button {width: 5.8rem;// height: 3.75rem;font-size: 2rem;background: none;color: #333;border-radius: 0;padding: 0;border: none;border-right: solid 0.0625rem #ccc;}button:last-child {border-right: none;}}.line_four {display: flex;border-top: solid 0.0625rem #ccc;button {width: 5.8rem;// height: 3.75rem;font-size: 2rem;background: none;color: #333;border-radius: 0;padding: 0;border: none;border-right: solid 0.0625rem #ccc;}button:last-child {border-right: none;}}}}.line-right {button {width: 6rem;height: 100%;padding: 0;border-radius: 0;font-size: 1.375rem;line-height: 6.375rem;}}}}}}}
</style>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72876.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72876.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72876.shtml

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

相關文章

智能車間管理系統(源碼+文檔+講解+演示)

引言 在現代制造業中&#xff0c;智能車間管理系統正成為推動工業4.0和智能制造的關鍵力量。它通過整合先進的信息技術和自動化技術&#xff0c;優化生產流程&#xff0c;提高生產效率&#xff0c;降低成本&#xff0c;并確保產品質量。 系統概述 智能車間管理系統采用前后端…

Model Context Protocol - Prompts

1. 概述 Model Context Protocol (MCP) 提供了一種標準化的方式&#xff0c;使服務器能夠向客戶端暴露提示模板&#xff08;prompts&#xff09;。Prompts 是服務器提供的結構化消息和指令&#xff0c;用于與語言模型進行交互。客戶端可以發現可用的提示、獲取其內容&#xff…

辦公自動化:使用 Python 生成 Word 文件:自動生成數據庫文檔 Word 文件

簡簡單單 Online zuozuo :本心、輸入輸出、結果 文章目錄 辦公自動化:使用 Python 生成 Word 文件:自動生成數據庫文檔 Word 文件前言一、環境準備二、編寫代碼三、編寫 Word 模版文件接收數據四、運行代碼,生成文件,大功告成五、說明辦公自動化:使用 Python 生成 Word 文…

嵌入式GPRS協議面試題及參考答案

目錄 GPRS 的全稱是什么?簡述其核心設計目標。 GPRS 中 DNS 服務器的核心作用是什么? BTS 在 EDGE 升級時需要哪些硬件調整? GPRS 的時隙分配策略如何影響多用戶并發? 解釋 PDCH(分組數據信道)的動態分配機制。 如何判斷天饋接反或鴛鴦線問題? GPRS 的 RLC/MAC 層…

Docker 內部通信(網絡)

1. 創建自定義橋接網絡 首先&#xff0c;創建一個自定義的Docker網絡。這可以通過docker network create命令完成。例如&#xff0c;我們可以創建一個名為my_custom_network的網絡&#xff1a; docker network create --driver bridge my_custom_network2. 啟動容器并連接到自…

單片機開發資源分析的實戰——以STM32F103C8T6為例子的單片機資源分析

目錄 第一點&#xff1a;為什么叫STM32F103C8T6 從資源手冊拿到我們的對STM32F103C8T6的資源描述 第二件事情&#xff0c;關心我們的GPIO引腳輸出 第三件事情&#xff1a;去找對應外設的說明部分 前言 本文章隸屬于項目&#xff1a; Charliechen114514/BetterATK: This is…

貪心算法(9)(java)最優除法

題目&#xff1a; 給定一正整數數組 nums,nums中的相鄰整數將進行浮點除法。例如&#xff0c;[2,3.4]->2/3/4. 例如&#xff0c;nums [2,3,4]&#xff0c;我們將求表達式的值“2/3/4"。 但是&#xff0c;你可以在任意位置添加任意數目的括號&#xff0c;來改變算…

騰訊云MySQL數據庫架構分析與使用場景

TDSQL-C for MySQL TDSQL-C MySQL 版&#xff08;TDSQL-C for MySQL&#xff09;是騰訊云自研的新一代云原生關系型數據庫。融合了傳統數據庫、云計算與新硬件技術的優勢&#xff0c;為用戶提供具備高彈性、高性能、海量存儲、安全可靠的數據庫服務。TDSQL-C MySQL 版100%兼容…

榮耀手機卸載應用商店、快應用中心等系統自帶的

1.下載abd ADB Download - Get the latest version of ADB and fastboot 2.手機打開開發者選項 3.手機接電腦打開USB調試 4.下載MT管理器查看系統包名 D:\1.LFD\ADB\platform-tools-latest-windows\platform-tools>adb shell adb.exe: no devices/emulators found 這邊是…

星型拓撲網絡發生網絡風暴

在星型拓撲網絡中&#xff0c;所有的設備&#xff08;如計算機、打印機等&#xff09;通過一個中心設備&#xff08;通常是交換機或集線器&#xff09;連接在一起。 星型拓撲網絡中發生網絡風暴時的情況&#xff1a; 網絡風暴的表現 1.廣播風暴&#xff1a;在星型拓撲中&…

網絡流基本概念及實現算法

基本概念 流網絡 對于一個有向圖, 抽象成水管里的水的模型, 每根管子有容量限制, 計為 G ( V , E ) G (V, E) G(V,E), 首先不考慮反向邊 對于任意無向圖, 都可以將反向邊轉化為上述形式 如果一條邊不存在, 定義為容量為 0 0 0, 形式上來說就是 c ( u , v ) 0 c(u, v) 0 c(…

【css酷炫效果】純CSS實現球形陰影效果

【css酷炫效果】純CSS實現球形陰影效果 緣創作背景html結構css樣式完整代碼基礎版進階版(動態版) 效果圖 想直接拿走的老板&#xff0c;鏈接放在這里&#xff1a;上傳后更新 緣 創作隨緣&#xff0c;不定時更新。 創作背景 剛看到csdn出活動了&#xff0c;趕時間&#xff0…

Linux如何在設備樹中表示和引用設備信息

DTS基本知識 dts 硬件的相應信息都會寫在.dts為后綴的文件中&#xff0c;每一款硬件可以單獨寫一份xxxx.dts&#xff0c;一般在Linux源碼中存在大量的dts文件&#xff0c;對于arm架構可以在arch/arm/boot/dts找到相應的dts&#xff0c;一個dts文件對應一個ARM的machie。 dtsi 值…

【數學建模】模糊綜合評價模型詳解、模糊集合論簡介

模糊綜合評價模型詳解 文章目錄 模糊綜合評價模型詳解1. 模糊綜合評價模型概述2. 模糊綜合評價的基本原理2.1 基本概念2.2 評價步驟 3. 模糊綜合評價的數學模型3.1 數學表達3.2 模糊合成運算 4. 模糊綜合評價的應用領域5. 模糊綜合評價的優缺點5.1 優點5.2 缺點 6. 模糊綜合評價…

C++20 中的同步輸出流:`std::basic_osyncstream` 深入解析與應用實踐

文章目錄 一、std::basic_osyncstream 的背景與動機二、std::basic_osyncstream 的基本原理三、std::basic_osyncstream 的使用方法&#xff08;一&#xff09;基本用法&#xff08;二&#xff09;多線程環境下的使用&#xff08;三&#xff09;與文件流的結合 四、std::basic_…

C/C++藍橋杯算法真題打卡(Day8)

一、P8780 [藍橋杯 2022 省 B] 刷題統計 - 洛谷 算法代碼&#xff1a; #include<bits/stdc.h> // 包含標準庫中的所有頭文件&#xff0c;方便使用各種數據結構和算法 using namespace std; // 使用標準命名空間&#xff0c;避免每次調用標準庫函數時都要加 std::in…

JavaScript 編程:從基礎到高級應用的全面探索

引言 JavaScript 作為一種廣泛應用于 Web 開發的腳本語言&#xff0c;已經成為現代互聯網不可或缺的一部分。它不僅可以為網頁增添交互性和動態效果&#xff0c;還能在服務器端&#xff08;如 Node.js&#xff09;進行后端開發。本文將從 JavaScript 的基礎語法開始&#xff0…

第十三次CCF-CSP認證(含C++源碼)

第十三次CCF-CSP認證 跳一跳滿分題解 碰撞的小球滿分題解遇到的問題 棋局評估滿分題解 跳一跳 題目鏈接 滿分題解 沒什么好說的 基本思路就是如何用代碼翻譯題目所給的一些限制&#xff0c;以及變量應該如何更新&#xff0c;沒像往常一樣給一個n&#xff0c;怎么讀入數據&…

Pytorch使用手冊—自定義函數的雙重反向傳播與自定義函數融合卷積和批歸一化(專題五十二)

1. 使用自定義函數的雙重反向傳播 有時候,在反向計算圖中運行兩次反向傳播是有用的,例如計算高階梯度。然而,支持雙重反向傳播需要對自動求導(autograd)有一定的理解,并且需要小心處理。支持單次反向傳播的函數不一定能夠支持雙重反向傳播。在本教程中,我們將展示如何編…

MySQL:數據庫基礎

數據庫基礎 1.什么是數據庫&#xff1f;2.為什么要學習數據庫&#xff1f;3.主流的數據庫&#xff08;了解&#xff09;4.服務器&#xff0c;數據庫&#xff0c;表之間的關系5.數據的邏輯存儲6.MYSQL架構7.存儲引擎 1.什么是數據庫&#xff1f; 數據庫(Database,簡稱DB)&#x…