@@ -8,7 +8,11 @@
< / div >
< / div >
< div class = "numpad-values" >
< div class = "numpad-values" >
< span id = "numpad-value" class = "numpad-value" :class = "currentDisplayNumClass" @click ="onDisplayValueClick" > {{ currentDisplay }} < / span >
< span id = "numpad-value" class = "numpad-value" :class = "currentDisplayNumClass" @click ="onDisplayValueClick" > {{ currentDisplay }} < / span >
< f7 -button class = "numpad-backspace-button" @click ="backspace" @taphold ="clear()" >
< f7 -button class = "numpad-backspace-button"
@pointerdown ="onBackspacePointerDown"
@pointerup ="onBackspacePointerEnd"
@pointercancel ="onBackspacePointerEnd"
@pointerleave ="onBackspacePointerEnd" >
< f7 -icon class = "icon-with-direction" f7 = "delete_left" > < / f7-icon >
< f7 -icon class = "icon-with-direction" f7 = "delete_left" > < / f7-icon >
< / f7-button >
< / f7-button >
< / div >
< / div >
@@ -21,55 +25,55 @@
< / f7-popover >
< / f7-popover >
< div class = "numpad-buttons" >
< div class = "numpad-buttons" >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(7)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(7)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 7 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 7 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(8)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(8)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 8 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 8 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(9)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(9)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 9 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 9 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-function no-right-border" @click ="setSymbol('× ')" >
< f7-button class = "numpad-button numpad-button-function no-right-border" @pointerdown.left ="setSymbol('× ')" >
< span class = "numpad-button-text numpad-button-text-normal" > & times ; < / span >
< span class = "numpad-button-text numpad-button-text-normal" > & times ; < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(4)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(4)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 4 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 4 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(5)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(5)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 5 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 5 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(6)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(6)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 6 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 6 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-function no-right-border" @click ="setSymbol('− ')" >
< f7-button class = "numpad-button numpad-button-function no-right-border" @pointerdown.left ="setSymbol('− ')" >
< span class = "numpad-button-text numpad-button-text-normal" > & minus ; < / span >
< span class = "numpad-button-text numpad-button-text-normal" > & minus ; < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(1)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(1)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 1 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 1 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(2)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(2)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 2 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 2 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(3)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(3)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 3 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 3 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-function no-right-border" @click ="setSymbol('+')" >
< f7-button class = "numpad-button numpad-button-function no-right-border" @pointerdown.left ="setSymbol('+')" >
< span class = "numpad-button-text numpad-button-text-normal" > & plus ; < / span >
< span class = "numpad-button-text numpad-button-text-normal" > & plus ; < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="clear()" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="clear()" >
< span class = "numpad-button-text numpad-button-text-normal" > C < / span >
< span class = "numpad-button-text numpad-button-text-normal" > C < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" @click ="inputNum(0)" >
< f7-button class = "numpad-button numpad-button-num" @pointerdown.left ="inputNum(0)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 0 ] } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { digits [ 0 ] } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" v-if = "supportDecimalSeparator" @click ="inputDecimalSeparator()" >
< f7-button class = "numpad-button numpad-button-num" v-if = "supportDecimalSeparator" @pointerdown.left ="inputDecimalSeparator()" >
< span class = "numpad-button-text numpad-button-text-normal" > { { decimalSeparator } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { decimalSeparator } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-num" v-if = "!supportDecimalSeparator" @click ="inputDoubleNum(0)" >
< f7-button class = "numpad-button numpad-button-num" v-if = "!supportDecimalSeparator" @pointerdown.left ="inputDoubleNum(0)" >
< span class = "numpad-button-text numpad-button-text-normal" > { { ` ${ digits [ 0 ] } ${ digits [ 0 ] } ` } } < / span >
< span class = "numpad-button-text numpad-button-text-normal" > { { ` ${ digits [ 0 ] } ${ digits [ 0 ] } ` } } < / span >
< / f7-button >
< / f7-button >
< f7-button class = "numpad-button numpad-button-confirm no-right-border no-bottom-border" fill @click ="confirm()" >
< f7-button class = "numpad-button numpad-button-confirm no-right-border no-bottom-border" fill @pointerdown.left ="confirm()" >
< span : class = "{ 'numpad-button-text': true, 'numpad-button-text-confirm': !currentSymbol }" > { { confirmText } } < / span >
< span : class = "{ 'numpad-button-text': true, 'numpad-button-text-confirm': !currentSymbol }" > { { confirmText } } < / span >
< / f7-button >
< / f7-button >
< / div >
< / div >
@@ -326,6 +330,31 @@ function clear(): void {
currentSymbol . value = '' ;
currentSymbol . value = '' ;
}
}
const BACKSPACE _HOLD _TO _CLEAR _MS = 500 ;
let backspaceClearTimer : ReturnType < typeof setTimeout > | null = null ;
function onBackspacePointerDown ( event : PointerEvent ) : void {
// 按下立刻删一位(消除 F7 taphold 判别期带来的点击延迟)
if ( event . button !== undefined && event . button !== 0 ) {
return ;
}
backspace ( ) ;
if ( backspaceClearTimer !== null ) {
clearTimeout ( backspaceClearTimer ) ;
}
backspaceClearTimer = setTimeout ( ( ) => {
clear ( ) ;
backspaceClearTimer = null ;
} , BACKSPACE _HOLD _TO _CLEAR _MS ) ;
}
function onBackspacePointerEnd ( ) : void {
if ( backspaceClearTimer !== null ) {
clearTimeout ( backspaceClearTimer ) ;
backspaceClearTimer = null ;
}
}
function paste ( ) : void {
function paste ( ) : void {
showPastePopover . value = false ;
showPastePopover . value = false ;
@@ -442,6 +471,7 @@ function onSheetOpen(): void {
}
}
function onSheetClosed ( ) : void {
function onSheetClosed ( ) : void {
onBackspacePointerEnd ( ) ;
close ( ) ;
close ( ) ;
}
}