Browse Source

fix: 一轮测试修复

wzl 1 year ago
parent
commit
f0f3b7451b

+ 1 - 1
packages/webview/src/components/Dialogs/ExtractPageSettingDialog.vue

@@ -176,7 +176,7 @@ const formatRange = (start, end) => {
       align-items: center;
       
       span {
-        text-wrap: nowrap;
+        white-space: nowrap;
         font-size: 14px;
         line-height: 16px;
       }

+ 2 - 1
packages/webview/src/components/Dialogs/InsertPageSettingDialog.vue

@@ -167,6 +167,7 @@ const confirm = async () => {
 
   if (place.value === 'custom') {
     data.place = targetIndex.value - 1 + targetPlace.value
+    data.targetPlace = targetPlace.value
   } else if (place.value === 'last') {
     data.place = props.totalPages
   } else {
@@ -286,7 +287,7 @@ const formatRange = (start, end) => {
       }
       
       span {
-        text-wrap: nowrap;
+        white-space: nowrap;
         font-size: 14px;
         line-height: 16px;
       }

+ 17 - 1
packages/webview/src/components/Dialogs/MovePageSettingDialog.vue

@@ -11,6 +11,7 @@
         onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
         @input="validateInput"
         :placeholder="$t('documentEditor.inputPageTip')"
+        @compositionstart="startComposition" @compositionend="endComposition"
       >
 
       <template #footer>
@@ -33,6 +34,7 @@ const dialogName = 'movePageSettingDialog'
 const show = computed(() => useViewer.isElementOpen(dialogName))
 
 const targetIndex = ref('')
+let composing = false
 
 const invalidMove = computed(() => {
   if (typeof targetIndex.value !== 'number') return true
@@ -69,15 +71,28 @@ const handleMove = async () => {
 }
 
 const validateInput = (e) => {
+  if (composing) return
+
   const value = e.target.valueAsNumber
 
-  if (value > props.totalPages) {
+  if (isNaN(value)) {
+    e.target.value = ''
+  }
+  
+  if (value > props.totalPages) { 
     targetIndex.value = props.totalPages
   }
   if (value === 0) {
     e.target.value = value.toFixed(0)
   }
 }
+
+const startComposition = () => {
+  composing = true
+}
+const endComposition = () => {
+  composing = false
+}
 </script>
 
 <style lang="scss">
@@ -112,6 +127,7 @@ const validateInput = (e) => {
     font-size: 14px;
     line-height: 16px;
     color: var(--c-text);
+    -moz-appearance: textfield;
 
     &:focus {
       border-color: #0078D7;

+ 1 - 1
packages/webview/src/components/DocumentEditorContainer/DocumentEditorContainer.vue

@@ -155,7 +155,7 @@ const handleInsertPage = async (data) => {
   
   if (data.type === 'blank') {
     // 添加数据到用于展示的pageList
-    const adjacentPage = pageList[data.place] || pageList[data.place - 1]
+    const adjacentPage = data.targetPlace ? pageList[data.place - 1] : (pageList[data.place] || pageList[data.place - 1])
     const pageListData = {
       type: data.type,
       rotation: 0,