1.0.1 • Published 6 months ago

yj-pic-viewer v1.0.1

Weekly downloads
-
License
-
Repository
-
Last release
6 months ago

特性

  • Viewer.js + Swiper + node-qrcode 组合
  • 多样的展示形式:文档流/瀑布流/轮播图/表格嵌套
  • 灵活的数据类型:URL/Base64/二维码/object URL
  • 任意绑定值类型
  • 局部注册并传参,或全局注册并传参

安装

局部注册

npm i yj-pic-viewer
<template>
  <PicViewer
    v-bind="{
      /* 局部配置 */
    }"
  />
</template>

<script>
import PicViewer from 'yj-pic-viewer'

export default {
  components: { PicViewer }
}
</script>

全局注册

npm i yj-pic-viewer
import PicViewer from 'yj-pic-viewer'

Vue.use(PicViewer, {
  // 全局配置
})

属性

名称说明类型默认值
value绑定值any
pattern展示模式('waterfall', 'swiper''table-cell'stringundefined(即文档流)
width图片统一宽度, 可在数据项单独配置每一张图片的不同宽高string148px
height图片统一高度, 可在数据项单独配置每一张图片的不同宽高stringauto
tableCellHeightpattern'table-cell' 模式时的高度string50px
srcAt图片 src 的位置string / symbol / (value: any) => any
viewerjs是否启用 Viewer.jsbooleantrue
viewerjsPropsViewer.js 的参数object{ zIndex: 5000, zoomRatio: 0.4 }
swiperPropsSwiper 的参数object{ observer: true }
qrcode是否将 value 转换为二维码boolean / 'auto'false
qrcodePropsnode-qrcode 的参数object{ margin: 0, errorCorrectionLevel: 'L', width: 444, height: 444 }

qrcode

如果将 qrcode 设为 'auto',PicViewer 会自动判断是否需要转换 (value 为 Base64 或 URL 时不会转换)。

srcAt

用于定位 value 中的图片 src,适用于绑定值非 src 本身的情况。

  • 支持属性名,如 'url'
  • 支持属性路径,如 'data[0].url'
  • 支持 symbol 类型的属性名
  • 支持 Function,如 ({ url }) => url

事件

名称说明回调参数
click点击图片后触发(src: string, index: number)

插槽

名称说明
默认插槽自定义 img 标签
<PicViewer>
  <template #default="{ src, index }">
    <img :src="src" />
    <div>第{{ index + 1 }}张</div>
  </template>
</PicViewer>

获取 Viewer.js 实例

picViewerRef.value.viewer.view()

获取 Swiper 实例

<template>
  <PicViewer
    ref="picViewerRef"
    pattern="swiper"
    :swiperProps="{
      on: {
        init: () => {
          $nextTick(() => {
            console.log(picViewerRef.swiper)
          })
        }
      }
    }"
  />
</template>

<script setup>
import PicViewer from 'yj-pic-viewer'

const picViewerRef = ref()
</script>

二维码清晰度

默认的图片 CSS 高度为 148px (与 el-upload 保持一致),默认的二维码分辨率为 444 × 444 (三倍图),如果你增大了图片的 CSS 尺寸,将导致图片变模糊。

解决方式:将二维码分辨率设置为展示尺寸的三倍。

<template>
  <PicViewer
    :qrcodeProps="{
      width: 900,
      height: 900
    }"
  />
</template>

<style scoped>
:deep(.pic-viewer) img {
  width: 300px;
  height: 300px;
}
</style>
1.0.1

6 months ago

1.0.0

6 months ago