support pasting amount on number pad sheet for non-ios device

This commit is contained in:
MaysWind
2026-01-17 22:16:30 +08:00
parent 543cc5f656
commit 8447dd7ae6
26 changed files with 112 additions and 7 deletions
+59 -7
View File
@@ -6,9 +6,17 @@
<div class="margin-top padding-horizontal" v-if="hint">
<span>{{ hint }}</span>
</div>
<div class="numpad-values" @click="paste">
<span class="numpad-value" :class="currentDisplayNumClass">{{ currentDisplay }}</span>
<div class="numpad-values" @click="onDisplayValueClick">
<span id="numpad-value" class="numpad-value" :class="currentDisplayNumClass">{{ currentDisplay }}</span>
</div>
<f7-popover class="numpad-paste-popover" target-el="#numpad-value"
v-model:opened="showPastePopover">
<f7-list class="numpad-paste-popover-context-menu-list">
<f7-list-item link="#" no-chevron :title="tt('Paste')" @click="paste"></f7-list-item>
</f7-list>
</f7-popover>
<div class="numpad-buttons">
<f7-button class="numpad-button numpad-button-num" @click="inputNum(7)">
<span class="numpad-button-text numpad-button-text-normal">{{ digits[7] }}</span>
@@ -111,7 +119,8 @@ const isSupportClipboard = !!navigator.clipboard;
const previousValue = ref<string>('');
const currentSymbol = ref<string>('');
const currentValue = ref<string>(getInitedStringValue(props.modelValue, props.flipNegative));
const pasteingAmount = ref<boolean>(false);
const pastingAmount = ref<boolean>(false);
const showPastePopover = ref<boolean>(false);
const numeralSystem = computed<NumeralSystem>(() => getCurrentNumeralSystemType());
@@ -317,15 +326,17 @@ function clear(): void {
}
function paste(): void {
if (!isiOS() || !isSupportClipboard || pasteingAmount.value) {
pasteingAmount.value = false;
showPastePopover.value = false;
if (pastingAmount.value) {
pastingAmount.value = false;
return;
}
pasteingAmount.value = true;
pastingAmount.value = true;
navigator.clipboard.readText().then(text => {
pasteingAmount.value = false;
pastingAmount.value = false;
if (!text) {
return;
@@ -354,6 +365,7 @@ function paste(): void {
currentValue.value = getStringValue(parsedAmount, false);
}).catch(error => {
pastingAmount.value = false;
logger.error('failed to read clipboard text', error);
});
}
@@ -431,6 +443,18 @@ function onSheetClosed(): void {
close();
}
function onDisplayValueClick(): void {
if (!isSupportClipboard) {
return;
}
if (isiOS()) {
paste();
} else {
showPastePopover.value = true;
}
}
watch(() => props.flipNegative, (newValue) => {
currentValue.value = getInitedStringValue(props.modelValue, newValue);
});
@@ -519,4 +543,32 @@ watch(() => props.flipNegative, (newValue) => {
.numpad-button-text-confirm {
font-size: var(--ebk-numpad-confirm-button-font-size);
}
.numpad-paste-popover.popover {
width: auto;
.numpad-paste-popover-context-menu-list.list {
:first-child li:first-child a {
&.active-state {
border-radius: unset;
}
> .item-content {
min-height: var(--ebk-popover-context-menu-min-height);
> .item-inner {
min-height: var(--ebk-popover-context-menu-min-height);
padding-top: var(--ebk-popover-context-menu-vertical-padding);
padding-bottom: var(--ebk-popover-context-menu-vertical-padding);
padding-left: var(--ebk-popover-context-menu-left-padding);
padding-right: var(--ebk-popover-context-menu-right-padding);
> .item-title {
font-size: var(--ebk-popover-context-menu-button-font-size);
}
}
}
}
}
}
</style>
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Kopieren",
"Paste": "Paste",
"Visible": "Sichtbar",
"Show": "Anzeigen",
"Hide": "Verbergen",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Copy",
"Paste": "Paste",
"Visible": "Visible",
"Show": "Show",
"Hide": "Hide",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Copiar",
"Paste": "Paste",
"Visible": "Visible",
"Show": "Mostrar",
"Hide": "Ocultar",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Jeton",
"Copy": "Copier",
"Paste": "Paste",
"Visible": "Visible",
"Show": "Afficher",
"Hide": "Masquer",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Copia",
"Paste": "Paste",
"Visible": "Visibile",
"Show": "Mostra",
"Hide": "Nascondi",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "コピー",
"Paste": "Paste",
"Visible": "見える",
"Show": "表示",
"Hide": "非表示",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "ಉದಾಹರಣೆ",
"Token": "ಟೋಕನ್",
"Copy": "ನಕಲಿಸು",
"Paste": "Paste",
"Visible": "ಗೋಚರಿಸು",
"Show": "ತೋರಿಸು",
"Hide": "ಮರೆಮಾಡು",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "토큰",
"Copy": "복사",
"Paste": "Paste",
"Visible": "표시",
"Show": "보기",
"Hide": "숨기기",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Kopiëren",
"Paste": "Paste",
"Visible": "Zichtbaar",
"Show": "Tonen",
"Hide": "Verbergen",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Copiar",
"Paste": "Paste",
"Visible": "Visível",
"Show": "Mostrar",
"Hide": "Ocultar",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Копировать",
"Paste": "Paste",
"Visible": "Видимый",
"Show": "Показать",
"Hide": "Скрыть",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Primer",
"Token": "Žeton",
"Copy": "Kopiraj",
"Paste": "Paste",
"Visible": "Vidno",
"Show": "Prikaži",
"Hide": "Skrij",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "โทเค็น",
"Copy": "คัดลอก",
"Paste": "Paste",
"Visible": "มองเห็น",
"Show": "แสดง",
"Hide": "ซ่อน",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Örnek",
"Token": "Jeton",
"Copy": "Kopyala",
"Paste": "Paste",
"Visible": "Görünür",
"Show": "Göster",
"Hide": "Gizle",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Копіювати",
"Paste": "Paste",
"Visible": "Видимий",
"Show": "Показати",
"Hide": "Сховати",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "Example",
"Token": "Token",
"Copy": "Sao chép",
"Paste": "Paste",
"Visible": "Hiển thị",
"Show": "Hiển thị",
"Hide": "Ẩn",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "示例",
"Token": "令牌",
"Copy": "复制",
"Paste": "粘贴",
"Visible": "可见",
"Show": "显示",
"Hide": "隐藏",
+1
View File
@@ -1482,6 +1482,7 @@
"Example": "範例",
"Token": "令牌",
"Copy": "複製",
"Paste": "貼上",
"Visible": "可見",
"Show": "顯示",
"Hide": "隱藏",
+5
View File
@@ -62,6 +62,11 @@
--ebk-large-footer-font-size: 13px;
--ebk-sheet-title-font-size: 18px;
--ebk-popover-list-group-title-height: 29px;
--ebk-popover-context-menu-min-height: 40px;
--ebk-popover-context-menu-vertical-padding: 12px;
--ebk-popover-context-menu-left-padding: 4px;
--ebk-popover-context-menu-right-padding: 20px;
--ebk-popover-context-menu-button-font-size: 15px;
--ebk-numpad-value-height: 50px;
--ebk-numpad-value-small-font-size: 20px;
--ebk-numpad-value-normal-font-size: 22px;
+5
View File
@@ -62,6 +62,11 @@
--ebk-large-footer-font-size: 14px;
--ebk-sheet-title-font-size: 19px;
--ebk-popover-list-group-title-height: 30px;
--ebk-popover-context-menu-min-height: 42px;
--ebk-popover-context-menu-vertical-padding: 13px;
--ebk-popover-context-menu-left-padding: 4px;
--ebk-popover-context-menu-right-padding: 22px;
--ebk-popover-context-menu-button-font-size: 16px;
--ebk-numpad-value-height: 52px;
--ebk-numpad-value-small-font-size: 21px;
--ebk-numpad-value-normal-font-size: 23px;
+5
View File
@@ -62,6 +62,11 @@
--ebk-large-footer-font-size: 13px;
--ebk-sheet-title-font-size: 18px;
--ebk-popover-list-group-title-height: 28px;
--ebk-popover-context-menu-min-height: 38px;
--ebk-popover-context-menu-vertical-padding: 11px;
--ebk-popover-context-menu-left-padding: 4px;
--ebk-popover-context-menu-right-padding: 18px;
--ebk-popover-context-menu-button-font-size: 14px;
--ebk-numpad-value-height: 50px;
--ebk-numpad-value-small-font-size: 20px;
--ebk-numpad-value-normal-font-size: 22px;
+5
View File
@@ -62,6 +62,11 @@
--ebk-large-footer-font-size: 15px;
--ebk-sheet-title-font-size: 20px;
--ebk-popover-list-group-title-height: 32px;
--ebk-popover-context-menu-min-height: 46px;
--ebk-popover-context-menu-vertical-padding: 15px;
--ebk-popover-context-menu-left-padding: 8px;
--ebk-popover-context-menu-right-padding: 26px;
--ebk-popover-context-menu-button-font-size: 17px;
--ebk-numpad-value-height: 54px;
--ebk-numpad-value-small-font-size: 22px;
--ebk-numpad-value-normal-font-size: 24px;
@@ -62,6 +62,11 @@
--ebk-large-footer-font-size: 16px;
--ebk-sheet-title-font-size: 22px;
--ebk-popover-list-group-title-height: 34px;
--ebk-popover-context-menu-min-height: 48px;
--ebk-popover-context-menu-vertical-padding: 15px;
--ebk-popover-context-menu-left-padding: 10px;
--ebk-popover-context-menu-right-padding: 28px;
--ebk-popover-context-menu-button-font-size: 18px;
--ebk-numpad-value-height: 60px;
--ebk-numpad-value-small-font-size: 22px;
--ebk-numpad-value-normal-font-size: 26px;
@@ -62,6 +62,11 @@
--ebk-large-footer-font-size: 18px;
--ebk-sheet-title-font-size: 24px;
--ebk-popover-list-group-title-height: 36px;
--ebk-popover-context-menu-min-height: 50px;
--ebk-popover-context-menu-vertical-padding: 15px;
--ebk-popover-context-menu-left-padding: 11px;
--ebk-popover-context-menu-right-padding: 29px;
--ebk-popover-context-menu-button-font-size: 19px;
--ebk-numpad-value-height: 60px;
--ebk-numpad-value-small-font-size: 24px;
--ebk-numpad-value-normal-font-size: 28px;
@@ -62,6 +62,11 @@
--ebk-large-footer-font-size: 20px;
--ebk-sheet-title-font-size: 26px;
--ebk-popover-list-group-title-height: 38px;
--ebk-popover-context-menu-min-height: 54px;
--ebk-popover-context-menu-vertical-padding: 16px;
--ebk-popover-context-menu-left-padding: 12px;
--ebk-popover-context-menu-right-padding: 30px;
--ebk-popover-context-menu-button-font-size: 21px;
--ebk-numpad-value-height: 60px;
--ebk-numpad-value-small-font-size: 26px;
--ebk-numpad-value-normal-font-size: 26px;