@koi-br/ocr-web-sdk 1.0.41 → 1.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -117
- package/dist/{index-B1W65EDF.mjs → index-D0vHyxHV.mjs} +9103 -9463
- package/dist/{index-OEZMBeqD.js → index-DUXpkXKO.js} +89 -89
- package/dist/index.cjs.js +2 -2
- package/dist/index.esm.js +9 -11
- package/dist/src/index.d.ts +0 -1
- package/dist/{tiff.min-D_NeHpVc.mjs → tiff.min-BzP8AM0k.mjs} +1 -1
- package/dist/{tiff.min-qFtp92t-.js → tiff.min-CTWTP_jY.js} +1 -1
- package/package.json +1 -1
- package/preview/ImagePreview.vue +88 -570
- package/dist/src/composables/useSyncScroll.d.ts +0 -111
package/README.md
CHANGED
|
@@ -47,12 +47,6 @@
|
|
|
47
47
|
- ✅ 查看原图功能
|
|
48
48
|
- ✅ 下载功能(可选)
|
|
49
49
|
|
|
50
|
-
### 🔄 同步滚动
|
|
51
|
-
- ✅ 多个预览组件同步滚动
|
|
52
|
-
- ✅ 支持比例同步和绝对同步两种模式
|
|
53
|
-
- ✅ 支持垂直、水平、双向同步
|
|
54
|
-
- ✅ 适用于不同大小、不同页数的图片
|
|
55
|
-
|
|
56
50
|
## 📦 安装
|
|
57
51
|
|
|
58
52
|
```bash
|
|
@@ -819,117 +813,6 @@ previewRef.value.clearPreview();
|
|
|
819
813
|
previewRef.value.preview(newFileUrl, 'new-file.pdf');
|
|
820
814
|
```
|
|
821
815
|
|
|
822
|
-
### 7. 同步滚动功能
|
|
823
|
-
|
|
824
|
-
实现多个预览组件之间的同步滚动,支持不同大小、不同页数的图片:
|
|
825
|
-
|
|
826
|
-
```vue
|
|
827
|
-
<template>
|
|
828
|
-
<div class="sync-preview-container">
|
|
829
|
-
<button @click="toggleSync">
|
|
830
|
-
{{ syncEnabled ? "禁用" : "启用" }}同步滚动
|
|
831
|
-
</button>
|
|
832
|
-
|
|
833
|
-
<div class="preview-wrapper">
|
|
834
|
-
<FilePreview ref="preview1Ref" :image-props="imageProps1" @load="handleLoad1" />
|
|
835
|
-
<FilePreview ref="preview2Ref" :image-props="imageProps2" @load="handleLoad2" />
|
|
836
|
-
</div>
|
|
837
|
-
</div>
|
|
838
|
-
</template>
|
|
839
|
-
|
|
840
|
-
<script setup>
|
|
841
|
-
import { ref, nextTick } from 'vue';
|
|
842
|
-
import FilePreview, { useSyncScroll } from '@koi-br/ocr-web-sdk';
|
|
843
|
-
|
|
844
|
-
const preview1Ref = ref(null);
|
|
845
|
-
const preview2Ref = ref(null);
|
|
846
|
-
const syncEnabled = ref(false);
|
|
847
|
-
|
|
848
|
-
// 初始化同步滚动管理器
|
|
849
|
-
const { enable, disable, toggle: toggleSync, register, unregister } = useSyncScroll({
|
|
850
|
-
enabled: false,
|
|
851
|
-
mode: 'ratio', // 比例同步(推荐,适用于不同大小的图片)
|
|
852
|
-
direction: 'vertical', // 垂直同步
|
|
853
|
-
debounce: 16, // 16ms 节流,约 60fps
|
|
854
|
-
});
|
|
855
|
-
|
|
856
|
-
const imageProps1 = {
|
|
857
|
-
url: ['image1-page1.jpg', 'image1-page2.jpg'],
|
|
858
|
-
autoFitWidth: true,
|
|
859
|
-
};
|
|
860
|
-
|
|
861
|
-
const imageProps2 = {
|
|
862
|
-
url: ['image2-page1.jpg', 'image2-page2.jpg'],
|
|
863
|
-
autoFitWidth: true,
|
|
864
|
-
};
|
|
865
|
-
|
|
866
|
-
// 注册容器到同步滚动管理器
|
|
867
|
-
const registerContainers = async () => {
|
|
868
|
-
await nextTick();
|
|
869
|
-
|
|
870
|
-
const preview1 = preview1Ref.value;
|
|
871
|
-
const preview2 = preview2Ref.value;
|
|
872
|
-
|
|
873
|
-
const container1 = preview1?.imagePreviewRef?.getContainer?.();
|
|
874
|
-
const container2 = preview2?.imagePreviewRef?.getContainer?.();
|
|
875
|
-
|
|
876
|
-
if (container1 && container2) {
|
|
877
|
-
register('preview1', container1);
|
|
878
|
-
register('preview2', container2);
|
|
879
|
-
}
|
|
880
|
-
};
|
|
881
|
-
|
|
882
|
-
// 切换同步滚动
|
|
883
|
-
const toggleSync = () => {
|
|
884
|
-
syncEnabled.value = !syncEnabled.value;
|
|
885
|
-
if (syncEnabled.value) {
|
|
886
|
-
enable();
|
|
887
|
-
registerContainers();
|
|
888
|
-
} else {
|
|
889
|
-
disable();
|
|
890
|
-
unregister('preview1');
|
|
891
|
-
unregister('preview2');
|
|
892
|
-
}
|
|
893
|
-
};
|
|
894
|
-
|
|
895
|
-
// 图片加载完成后注册
|
|
896
|
-
const handleLoad1 = () => {
|
|
897
|
-
if (syncEnabled.value) {
|
|
898
|
-
nextTick(() => registerContainers());
|
|
899
|
-
}
|
|
900
|
-
};
|
|
901
|
-
|
|
902
|
-
const handleLoad2 = () => {
|
|
903
|
-
if (syncEnabled.value) {
|
|
904
|
-
nextTick(() => registerContainers());
|
|
905
|
-
}
|
|
906
|
-
};
|
|
907
|
-
</script>
|
|
908
|
-
```
|
|
909
|
-
|
|
910
|
-
**同步滚动 API:**
|
|
911
|
-
|
|
912
|
-
```typescript
|
|
913
|
-
import { useSyncScroll, SyncScrollManager, type SyncScrollConfig } from '@koi-br/ocr-web-sdk';
|
|
914
|
-
|
|
915
|
-
// Vue Composable 方式(推荐)
|
|
916
|
-
const { enable, disable, register, unregister } = useSyncScroll({
|
|
917
|
-
enabled: true,
|
|
918
|
-
mode: 'ratio', // 'ratio' | 'absolute'
|
|
919
|
-
direction: 'vertical', // 'vertical' | 'horizontal' | 'both'
|
|
920
|
-
debounce: 16, // 防抖延迟(毫秒)
|
|
921
|
-
});
|
|
922
|
-
|
|
923
|
-
// 或直接使用 SyncScrollManager(非 Vue 环境)
|
|
924
|
-
const manager = new SyncScrollManager({
|
|
925
|
-
enabled: true,
|
|
926
|
-
mode: 'ratio',
|
|
927
|
-
direction: 'vertical',
|
|
928
|
-
});
|
|
929
|
-
```
|
|
930
|
-
|
|
931
|
-
详细使用文档请参考:[同步滚动使用指南](./docs/sync-scroll-usage.md)
|
|
932
|
-
|
|
933
816
|
## ⚠️ 注意事项
|
|
934
817
|
|
|
935
818
|
1. **样式自动加载**:SDK 会自动加载样式,无需手动导入样式文件。样式已内联到 JS 文件中,导入组件后样式会自动生效。
|