index.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <template>
  2. <PageWrapper title="图片预览示例">
  3. <h1>有预览图</h1>
  4. <ImagePreview :imageList="imgList" />
  5. <a-divider />
  6. <h1>无预览图</h1>
  7. <a-button @click="openImg" type="primary">点击预览</a-button>
  8. </PageWrapper>
  9. </template>
  10. <script lang="ts">
  11. import { defineComponent } from 'vue';
  12. import { createImgPreview, ImagePreview } from '/@/components/Preview/index';
  13. import { PageWrapper } from '/@/components/Page';
  14. import { ImageProps } from '/@/components/Preview/src/typing';
  15. const imgList: ImageProps[] = [
  16. { src: 'https://jeecgos.oss-cn-beijing.aliyuncs.com/upload/test/login_1658829954004.png', width: 300 },
  17. { src: 'https://jeecgos.oss-cn-beijing.aliyuncs.com/upload/test/home_index_1658830084684.png', width: 300 },
  18. { src: 'https://jeecgos.oss-cn-beijing.aliyuncs.com/upload/test/design_1658830200539.png', width: 300 },
  19. { src: 'https://static.jeecg.com/upload/test/13_1592320121058.png', width: 300 },
  20. { src: 'https://static.jeecg.com/upload/test/16_1592320251436.png', width: 300 },
  21. ];
  22. export default defineComponent({
  23. components: { PageWrapper, ImagePreview },
  24. setup() {
  25. function openImg() {
  26. const onImgLoad = ({ index, url, dom }) => {
  27. console.log(`第${index + 1}张图片已加载,URL为:${url}`, dom);
  28. };
  29. // 可以使用createImgPreview返回的 PreviewActions 来控制预览逻辑,实现类似幻灯片、自动旋转之类的骚操作
  30. let imageList = imgList.map<string>((i) => i.src);
  31. createImgPreview({ imageList: imageList, defaultWidth: 700, rememberState: true, onImgLoad });
  32. }
  33. return { imgList, openImg };
  34. },
  35. });
  36. </script>