wzl пре 6 месеци
родитељ
комит
c731c8ae9e
39 измењених фајлова са 130 додато и 72 уклоњено
  1. 2 2
      packages/core/src/annotation/freetext.js
  2. 2 2
      packages/core/src/annotation/ink.js
  3. 1 1
      packages/core/src/annotation/layer.js
  4. 2 2
      packages/core/src/annotation/line.js
  5. 2 2
      packages/core/src/annotation/link.js
  6. 2 2
      packages/core/src/annotation/shape.js
  7. 6 5
      packages/core/src/annotation/stamp.js
  8. 2 2
      packages/core/src/annotation/text.js
  9. 5 3
      packages/core/src/crop_page.js
  10. 2 2
      packages/core/src/editor/image_editor.js
  11. 2 2
      packages/core/src/editor/text_editor.js
  12. 2 2
      packages/core/src/form/check_box.js
  13. 2 2
      packages/core/src/form/combo_box.js
  14. 2 2
      packages/core/src/form/list_box.js
  15. 2 2
      packages/core/src/form/push_button.js
  16. 2 2
      packages/core/src/form/radio_button.js
  17. 2 2
      packages/core/src/form/signature_fields.js
  18. 2 2
      packages/core/src/form/text_field.js
  19. 1 6
      packages/core/src/index.js
  20. 5 1
      packages/webview/src/assets/main.scss
  21. 5 2
      packages/webview/src/components/AnnotationContainer/AnnotationContent.vue
  22. 2 0
      packages/webview/src/components/CompareDocumentContainer/CompareDocumentContainer.vue
  23. 6 0
      packages/webview/src/components/ContentEditorPanel/ContentEditorPanel.vue
  24. 9 4
      packages/webview/src/components/Dialogs/AddDigitalFileDialog.vue
  25. 7 2
      packages/webview/src/components/Dialogs/CompareSettingDialog.vue
  26. 5 1
      packages/webview/src/components/Dialogs/ExtractPageSettingDialog.vue
  27. 7 0
      packages/webview/src/components/Dialogs/InsertPageSettingDialog.vue
  28. 5 5
      packages/webview/src/components/Dialogs/SelectSignTypeDialog.vue
  29. 7 3
      packages/webview/src/components/Dialogs/SettingsDialog.vue
  30. 8 1
      packages/webview/src/components/Dialogs/SignatureAppearanceDialog.vue
  31. 5 1
      packages/webview/src/components/DocumentContainer/DocumentContainer.vue
  32. 1 1
      packages/webview/src/components/HeaderItems/HeaderItems.vue
  33. 2 1
      packages/webview/src/components/LinkPanel/LinkPanel.vue
  34. 4 0
      packages/webview/src/components/Outlines/Outlines.vue
  35. 3 2
      packages/webview/src/components/PageNavOverlay/PageNavOverlay.vue
  36. 2 1
      packages/webview/src/components/Password/SetPassword.vue
  37. 2 1
      packages/webview/src/components/RightPanel/RightPanel.vue
  38. 1 0
      packages/webview/src/components/SignatureToolBar/SignatureVerifyBar.vue
  39. 1 1
      packages/webview/src/components/Signatures/SignCreatePanel.vue

+ 2 - 2
packages/core/src/annotation/freetext.js

@@ -629,7 +629,7 @@ export default class Shape extends Base {
   handleMouseMove (event) {
     if (event.button !== 0 && event.type === 'mousemove') return
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -769,7 +769,7 @@ export default class Shape extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/annotation/ink.js

@@ -159,7 +159,7 @@ export default class Ink extends Base {
   handleMouseMove (event) {
     if (event.button !== 0 && event.type === 'mousemove') return
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -437,7 +437,7 @@ export default class Ink extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 1 - 1
packages/core/src/annotation/layer.js

@@ -90,7 +90,7 @@ class ComPDFAnnotationLayer {
     if (!tool || markup.includes(tool)) {
       document.querySelector('.document').classList.remove('annotation-edit')
     }
-    if (markup.includes(tool) || tool === 'cropPage') {
+    if (markup.includes(tool) || tool === 'cropPage' || tool === 'selectText') {
       if (this.freetextManager) {
         this.freetextManager.reset()
       }

+ 2 - 2
packages/core/src/annotation/line.js

@@ -384,7 +384,7 @@ export default class Line extends Base {
   handleMouseMove (event) {
     if (event.button !== 0 && event.type === 'mousemove') return
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -492,7 +492,7 @@ export default class Line extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/annotation/link.js

@@ -475,7 +475,7 @@ export default class Link extends Base {
   handleMouseMove (event) {
     if (event.button !== 0 && event.type === 'mousemove') return
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -634,7 +634,7 @@ export default class Link extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/annotation/shape.js

@@ -450,7 +450,7 @@ export default class Shape extends Base {
   handleMouseMove (event) {
     if (event.button !== 0 && event.type === 'mousemove') return
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -608,7 +608,7 @@ export default class Shape extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 6 - 5
packages/core/src/annotation/stamp.js

@@ -44,6 +44,7 @@ export default class Stamp extends Base {
     this.endCircle = null
 
     this.show = show
+    this.ratio = window.devicePixelRatio || 1
 
     this.onMousedown = this.handleMouseDown.bind(this)
     this.onMouseup = this.handleMouseUp.bind(this)
@@ -119,14 +120,14 @@ export default class Stamp extends Base {
       imgSrc =  annotation.image
     }  else if (annotation.stampType === 'standard' || annotation.stampType === 'image' || annotation.stampType === 'text') {
       const imgRect = {
-        width: parseInt(rect.width + 1),
-        height: parseInt(rect.height + 1)
+        width: parseInt(rect.width * this.ratio + 1),
+        height: parseInt(rect.height * this.ratio + 1)
       }
 
       const imageArray = await this.messageHandler.sendWithPromise('GetRenderAnnot', {
         annotPtr: this.annotation.annotPtr,
         rect: this.annotation.rect,
-        scale: this.scale
+        scale: this.scale * this.ratio
       })
 
       const canvas = document.createElement('canvas')
@@ -409,7 +410,7 @@ export default class Stamp extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchstart') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
       document.body.style.userSelect = 'none';
       document.getElementById('app').style.touchAction = 'none';
       document.querySelector('.document-container').style.overflow = 'hidden'
@@ -591,7 +592,7 @@ export default class Stamp extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
       document.body.style.userSelect = 'auto';
       document.getElementById('app').style.touchAction = 'auto';
       document.querySelector('.document-container').style.overflow = 'auto'

+ 2 - 2
packages/core/src/annotation/text.js

@@ -142,7 +142,7 @@ export default class Text extends Base {
   handleMouseMove (event) {
     if (event.button !== 0 && event.type === 'mousemove') return
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     const { pageX, pageY } = getClickPoint(event)
     if (pageX === this.startState.clickX && pageY === this.startState.clickY) return
@@ -198,7 +198,7 @@ export default class Text extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     document.removeEventListener('mousemove', this.onMousemove)
     document.removeEventListener('mouseup', this.onMouseup)

+ 5 - 3
packages/core/src/crop_page.js

@@ -48,8 +48,10 @@ export default class CropPage {
 
     this.container.addEventListener(this.mousedown, this.onDrawMousedown)
 
-    if (!this.cropping) this.container.style.cursor = 'crosshair'
-    this.container.style.touchAction = 'none'
+    setTimeout(() => {
+      if (!this.cropping) this.container.style.cursor = 'crosshair'
+      this.container.style.touchAction = 'none'
+    })
 
     document.removeEventListener(this.mousemove, this.onDrawMousemove)
     document.removeEventListener(this.mouseup, this.onDrawMouseup)
@@ -453,7 +455,7 @@ export default class CropPage {
 
   handleMouseUp (event) {
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     document.removeEventListener(this.mousemove, this.onMousemove)
     document.removeEventListener(this.mouseup, this.onMouseup)

+ 2 - 2
packages/core/src/editor/image_editor.js

@@ -425,7 +425,7 @@ export class ImageEditor {
     this.frameContainer.classList.add('selected')
 
     if (e.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
 
     if (this.state === 0 && !this.imageUrl) this.updateOriginalImageUrl()
@@ -502,7 +502,7 @@ export class ImageEditor {
     this.moving = true
     
     if (e.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
 
     const { pageX, pageY } = getClickPoint(e)

+ 2 - 2
packages/core/src/editor/text_editor.js

@@ -478,7 +478,7 @@ export class TextEditor {
     this.textContainer.removeEventListener(this.mousemove, this.onMousemove)
 
     if (e.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
 
     let flag = true
@@ -647,7 +647,7 @@ export class TextEditor {
     this.hidePopup()
     
     if (e.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
 
     if (this.state === 1) {

+ 2 - 2
packages/core/src/form/check_box.js

@@ -569,7 +569,7 @@ export default class CheckBox extends Base {
 
   handleMouseMove (event) {
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -726,7 +726,7 @@ export default class CheckBox extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/form/combo_box.js

@@ -556,7 +556,7 @@ export default class ComboBox extends Base {
 
   handleMouseMove (event) {
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -713,7 +713,7 @@ export default class ComboBox extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/form/list_box.js

@@ -532,7 +532,7 @@ export default class ListBox extends Base {
 
   handleMouseMove(event) {
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -689,7 +689,7 @@ export default class ListBox extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/form/push_button.js

@@ -510,7 +510,7 @@ export default class PushButton extends Base {
 
   handleMouseMove (event) {
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -667,7 +667,7 @@ export default class PushButton extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/form/radio_button.js

@@ -572,7 +572,7 @@ export default class RadioButton extends Base {
 
   handleMouseMove (event) {
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -729,7 +729,7 @@ export default class RadioButton extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/form/signature_fields.js

@@ -425,7 +425,7 @@ export default class SignatureFields extends Base {
   handleMouseMove (event) {
     if (event.button !== 0 && event.type === 'mousemove') return
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -583,7 +583,7 @@ export default class SignatureFields extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 2 - 2
packages/core/src/form/text_field.js

@@ -514,7 +514,7 @@ export default class TextField extends Base {
 
   handleMouseMove (event) {
     if (event.type === 'touchmove') {
-      document.body.style.overscrollBehavior = 'none';
+      document.querySelector('.document-container').style.overflow = 'hidden'
     }
     this.moving = true
     const { pageX, pageY } = getClickPoint(event)
@@ -671,7 +671,7 @@ export default class TextField extends Base {
       event.stopPropagation()
     }
     if (event.type === 'touchend') {
-      document.body.style.overscrollBehavior = 'auto';
+      document.querySelector('.document-container').style.overflow = 'auto'
     }
     this.moving = false
     document.removeEventListener('mousemove', this.onMousemove)

+ 1 - 6
packages/core/src/index.js

@@ -2079,15 +2079,10 @@ class ComPDFKitViewer {
           return false
         });
     } else {
-      const saveTypeMap = {
-        'set': 2,
-        'remove': 3
-      }
-      const saveType = saveTypeMap[this.saveAction] || 1
       const result = await this.messageHandler.sendWithPromise('FlattenPage', {
         doc: this.doc,
         pagesPtr: this.pagesPtr,
-        saveType,
+        saveType: 2,
         password: this.#pwd,
         oldPassword: this.#oldPwd
       })

+ 5 - 1
packages/webview/src/assets/main.scss

@@ -41,7 +41,11 @@ html, body , #app {
   padding: 0;
 }
 
-input, button, label, textarea, form, select, #app {
+button, label, form, select, #app {
+  font-size: 13px;
+}
+
+input, textarea {
   font-size: 16px;
 }
 

+ 5 - 2
packages/webview/src/components/AnnotationContainer/AnnotationContent.vue

@@ -8,7 +8,7 @@
             <span>{{ pageAnnotations.pageAnnotationsCount }}</span>
           </div>
           <template v-for="(item, index) in pageAnnotations.annotations">
-            <div v-if="!['link', 'reply'].includes(item.type) && !item.isDelete && !item.isHidden" class="annotation-item" @click="goToPage(item)" :class="{ 'selected': selectedAnnot && selectedAnnot.name === item.name }" :id="item.name ? `annotationList-${item.name}` : null">
+            <div v-if="!['link', 'reply'].includes(item.type) && !item.isDelete && !item.isHidden" class="annotation-item" :class="{ 'selected': selectedAnnot && selectedAnnot.name === item.name }" :id="item.name ? `annotationList-${item.name}` : null">
               <div class="item-header">
                 <Highlight v-if="item.type === 'highlight'" />
                 <Squiggle v-else-if="item.type === 'squiggly'" />
@@ -25,7 +25,7 @@
                 <Note v-else-if="item.type === 'text'" />
                 <Stamp v-else-if="item.type === 'image' || item.type === 'stamp'" />
 
-                <div class="info">
+                <div class="info" @click="goToPage(item)">
                   <p class="name">{{ item.author || item.title || 'Guest' }}</p>
                   <p class="date">{{ dayjs(item.date).format('DD/MM/YYYY HH:mm:ss') }}</p>
                   <div v-if="item.contents" class="content">{{ item.contents }}</div>
@@ -142,6 +142,7 @@ import core from '@/core'
 import { useDocumentStore } from '@/stores/modules/document'
 import { useViewerStore } from '@/stores/modules/viewer'
 import { NPopover } from 'naive-ui'
+import { isMobile } from '@/helpers/device'
 
 const useDocument = useDocumentStore()
 const useViewer = useViewerStore()
@@ -201,6 +202,8 @@ const goToPage = (annotation) => {
     selectedAnnot.value = annotation
     showReplyInput.value = false
   }
+
+  isMobile && useViewer.closeElement('leftPanel')
 }
 
 // 取消回复

+ 2 - 0
packages/webview/src/components/CompareDocumentContainer/CompareDocumentContainer.vue

@@ -504,6 +504,8 @@ async function handlePdf (pdf, filename, docNum) {
           line-height: 16px;
           color: var(--c-text);
           text-align: left;
+          width: 100%;
+          word-wrap: break-word;
         }
       }
     }

+ 6 - 0
packages/webview/src/components/ContentEditorPanel/ContentEditorPanel.vue

@@ -828,6 +828,12 @@
     .edit-container {
       padding-bottom: 80px;
       overflow-y: auto;
+
+      .tools .buttons :hover,
+      .flips .buttons :hover,
+      .rotate .buttons div:hover {
+        background: none;
+      }
     }
   }
 

+ 9 - 4
packages/webview/src/components/Dialogs/AddDigitalFileDialog.vue

@@ -23,7 +23,7 @@
       </div>
 
       <template #footer>
-        <div class="rect-button white" @click="closeDialog">{{ $t('cancel') }}</div>
+        <div class="rect-button white" @click="closeDialog('cancel')">{{ $t('cancel') }}</div>
         <div class="rect-button blue" @click="next">{{ $t('continue') }}</div>
       </template>
     </Dialog>
@@ -58,7 +58,8 @@ watch(() => show.value, (newVal, oldVal) => {
   }
 })
 
-const closeDialog = () => {
+const closeDialog = (flag) => {
+  if (flag) document.body.style.overflow = ''
   useViewer.closeElement(dialogName)
   password.value = ''
 }
@@ -227,8 +228,12 @@ const handleFile = (e) => {
     font-size: 14px;
     line-height: 16px;
   }
-  input::placeholder {
-    color: var(--c-input-placeholder);
+  input {
+    font-size: 16px;
+    &::placeholder {
+      font-size: 14px;
+      color: var(--c-input-placeholder);
+    }
   }
 
   input[type="file"] {

+ 7 - 2
packages/webview/src/components/Dialogs/CompareSettingDialog.vue

@@ -797,7 +797,6 @@ const setNewCurrentScale = (scale) => {
       display: block;
     }
     .dialog {
-      position: unset;
       overflow: hidden;
     }
     .dialog-content {
@@ -807,7 +806,7 @@ const setNewCurrentScale = (scale) => {
       width: 100%;
       height: 100%;
       z-index: 2;
-      padding-top: 60px;
+      padding-top: 20px;
       padding-bottom: 20px;
       background-color: var(--c-header-bg);
       border-radius: 0;
@@ -830,4 +829,10 @@ const setNewCurrentScale = (scale) => {
     }
   }
 }
+
+@media screen and (max-width: 768px) {
+  .compare-setting-popup .dialog-content .opacity .row input {
+    font-size: 16px;
+  }
+}
 </style>

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

@@ -215,9 +215,13 @@ const checkDeleteAfter = computed(() => {
         background: var(--c-right-side-content-fillbox-bg);
         border: 1px solid var(--c-right-side-content-fillbox-border);
         border-radius: 1px;
-        font-size: 14px;
+        font-size: 16px;
         line-height: 16px;
         color: var(--c-text);
+
+        &::placeholder {
+          font-size: 14px;
+        }
       }
 
       input[type="text"]:focus {

+ 7 - 0
packages/webview/src/components/Dialogs/InsertPageSettingDialog.vue

@@ -325,6 +325,13 @@ const formatRange = (start, end) => {
         line-height: 16px;
       }
 
+      input {
+        font-size: 16px;
+        &::placeholder {
+          font-size: 14px;
+        }
+      }
+
       input,
       select {
         color: var(--c-text);

+ 5 - 5
packages/webview/src/components/Dialogs/SelectSignTypeDialog.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="move-page-popup" v-if="show">
+  <div class="select-type-popup" v-if="show">
     <Dialog :show="show" :dialogName="dialogName" :close="true">
       <p class="title title-color">{{ $t('signatures.selectTypeDialog.selectType') }}</p>
 
@@ -54,6 +54,8 @@ core.addEvent('openSelectSignTypeDialog', showDialog)
 
 const toSign = () => {
   useViewer.closeElement(dialogName)
+  document.body.style.overflow = 'hidden'
+
   if (type.value === 'digital') useViewer.openElement('addDigitalFileDialog')
   else openSignCreatePanel()
 }
@@ -67,16 +69,14 @@ const openSignCreatePanel = () => {
   core.switchTool(0)
   
   core.switchAnnotationEditorMode(0)
-  
-  document.body.style.overflow = 'hidden'
 }
 </script>
 
 <style lang="scss">
-.move-page-popup {
+.select-type-popup {
 
   .dialog-container {
-    width: 372px;
+    max-width: 372px;
 
     .close {
       float: right;

+ 7 - 3
packages/webview/src/components/Dialogs/SettingsDialog.vue

@@ -156,13 +156,16 @@
       background: var(--c-right-side-content-fillbox-bg);
       border: 1px solid var(--c-right-side-content-fillbox-border);
       border-radius: 1px;
-      font-size: 14px;
       line-height: 16px;
       color: var(--c-text);
     }
 
-    input::placeholder {
-      color: var(--c-settings-text);
+    input {
+      font-size: 16px;
+      &::placeholder {
+        font-size: 14px;
+        color: var(--c-settings-text);
+      }
     }
 
     input:focus {
@@ -170,6 +173,7 @@
     }
 
     select {
+      font-size: 14px;
       color: var(--c-settings-text);
       -webkit-appearance: none;
       -moz-appearance: none;

+ 8 - 1
packages/webview/src/components/Dialogs/SignatureAppearanceDialog.vue

@@ -277,7 +277,7 @@ const closePanel = (flag) => {
   }
   core.handleSign({ flag: 'reset' })
 
-  document.body.style.overflow = 'auto'
+  document.body.style.overflow = ''
 
   if (!activeTool.value && flag === 'cancel') useViewer.openElement('selectSignTypeDialog')
   useViewer.setActiveSignWay('keyboard')
@@ -594,6 +594,7 @@ const openDrawPanel = () => {
     }
 
     select {
+      font-size: 14px;
       padding-right: 20px;
       -webkit-appearance: none;
       -moz-appearance: none;
@@ -716,4 +717,10 @@ const openDrawPanel = () => {
     }
   }
 }
+
+@media screen and (max-width: 768px) {
+  .signature-appearance-dialog .configurations input {
+    font-size: 16px;
+  }
+}
 </style>

+ 5 - 1
packages/webview/src/components/DocumentContainer/DocumentContainer.vue

@@ -1,6 +1,10 @@
 <template>
   <div ref="mainContainer" class="document-container"
-    :class="{ 'no-select': isHandActive, 'under': (toolMode === 'compare' && compareStatus !== 'finished') || toolMode === 'document', 'no-touch': activeTool === 'selectText' }"
+    :class="{
+      'no-select': isHandActive,
+      'under': (toolMode === 'compare' && compareStatus !== 'finished') || toolMode === 'document',
+      'no-touch': ['selectText', 'highlight', 'underline', 'squiggly', 'strikeout'].includes(activeTool)
+    }"
     :style="{
       'width': `calc(100% - ${leftPanelSpace}px - ${rightPanelSpace}px)`,
       'margin-left': `${leftPanelSpace}px`,

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

@@ -28,7 +28,7 @@
           <template #trigger>
             <Button class="drop-menu" :class="{ disabled: !load }">
               <CropPageIcon v-if="activeTool === 'cropPage'" />
-              <SelectText v-else-if="activeTool === 'selectText'" />
+              <SelectText v-else-if="['selectText', 'highlight', 'underline', 'squiggly', 'strikeout'].includes(activeTool)" />
               <Pantool v-else />
               <Arrow />
             </Button>

+ 2 - 1
packages/webview/src/components/LinkPanel/LinkPanel.vue

@@ -251,11 +251,12 @@
         background: var(--c-right-side-content-fillbox-bg);
         border: 1px solid var(--c-right-side-content-fillbox-border);
         border-radius: 1px;
-        font-size: 14px;
+        font-size: 16px;
         line-height: 20px;
         color: var(--c-text);
         font-family: 'Helvetica';
         &::placeholder {
+          font-size: 14px;
           color: var(--c-text);
           opacity: 0.6;
         }

+ 4 - 0
packages/webview/src/components/Outlines/Outlines.vue

@@ -15,10 +15,13 @@
 <script setup>
 import core from '@/core'
 import { ref, computed } from 'vue'
+import { useViewerStore } from '@/stores/modules/viewer'
 import { useDocumentStore } from '@/stores/modules/document'
+import { isMobile } from '@/helpers/device'
 
 const emits = defineEmits()
 const useDocument = useDocumentStore()
+const useViewer = useViewerStore()
 
 const { outline } = defineProps({
   outline: {
@@ -61,6 +64,7 @@ const goToOutline = () => {
   core.pageNumberChanged({
     value: outline.pageNumber
   })
+  isMobile && useViewer.closeElement('leftPanel')
 }
 
 const toggleOutline = (e) => {

+ 3 - 2
packages/webview/src/components/PageNavOverlay/PageNavOverlay.vue

@@ -17,7 +17,7 @@
         @blur="goToPage"
         @keydown.enter="goToPage"
         tabIndex=-1
-        :style="{ width: pageValue.toString().length * 8 + 'px' }"
+        :style="{ width: pageValue.toString().length * 8 + 2 + 'px' }"
         pattern="\d*"
         onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
         name="page-nav"
@@ -123,6 +123,7 @@
     input {
       min-width: 8px;
       line-height: 16px;
+      font-size: 16px;
       padding: 0;
       text-align: right;
       color: rgb(36, 42, 51);
@@ -140,7 +141,7 @@
     }
     span {
       display: inline-block;
-      font-size: 12px;
+      font-size: 14px;
       line-height: 16px;
       color: #FFF;
       white-space: nowrap;

+ 2 - 1
packages/webview/src/components/Password/SetPassword.vue

@@ -123,11 +123,12 @@
         border: 1px solid rgba(0, 0, 0, 0.12);
         border-color: var(--c-side-header-border);
         border-radius: 1px;
-        font-size: 14px;
+        font-size: 16px;
         color: var(--c-text);
         padding: 4px 24px 4px 8px;
         background-color: var(--c-side-header-bg);
         &::placeholder {
+          font-size: 14px;
           color: var(--c-text);
           opacity: 0.6;
         }

+ 2 - 1
packages/webview/src/components/RightPanel/RightPanel.vue

@@ -674,11 +674,12 @@
           background: var(--c-right-side-content-fillbox-bg);
           border: 1px solid var(--c-right-side-content-fillbox-border);
           border-radius: 1px;
-          font-size: 14px;
+          font-size: 16px;
           line-height: 20px;
           color: var(--c-text);
           font-family: 'Helvetica';
           &::placeholder {
+            font-size: 14px;
             color: var(--c-text);
             opacity: 0.6;
           }

+ 1 - 0
packages/webview/src/components/SignatureToolBar/SignatureVerifyBar.vue

@@ -41,6 +41,7 @@
 
 <style lang="scss" scoped>
 .signature-verify {
+  position: relative;
   padding: 8px 16px;
   display: flex;
   align-items: center;

+ 1 - 1
packages/webview/src/components/Signatures/SignCreatePanel.vue

@@ -182,7 +182,7 @@ const closePanel = (flag) => {
     clearData()
   }
   clearProperty()
-  document.body.style.overflow = 'auto'
+  document.body.style.overflow = ''
 
   if (!activeTool.value && flag === 'cancel') useViewer.openElement('selectSignTypeDialog')
 }