Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pic-viewer

Package Overview
Dependencies
Maintainers
4
Versions
60
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pic-viewer

Picture viewer.

  • 0.8.4
  • npm
  • Socket score

Version published
Weekly downloads
10
increased by42.86%
Maintainers
4
Weekly downloads
 
Created
Source

Pic Viewer version

图片画廊。

minzipped size code style conventional commits


特性

  • viewerjs + swiper + qrcode 组合拳
  • 多样的展示形式: 文档流 / 瀑布流 / 轮播图 / 表格嵌套
  • 灵活的数据类型: URL / Base64 / 二维码 / object URL
  • 任意绑定值类型
  • 局部注册 + 局部传参,也可以全局注册 + 全局传参(vue-global-config 提供技术支持)

安装

外置依赖

  • vue@2

局部注册

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

<script>
import PicViewer from 'pic-viewer'

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

全局注册

npm add pic-viewer
import PicViewer from 'pic-viewer'

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

CDN + ESM

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
</head>

<body>
  <div id="app">
    <pic-viewer
      value="xxx"
      qrcode
    ></pic-viewer>
  </div>
  <script type="importmap">
    {
      "imports": {
        "vue": "https://unpkg.com/vue@2/dist/vue.esm.browser.min.js",
        "pic-viewer": "https://unpkg.com/pic-viewer@0.8/dist/pic-viewer.mjs"
      }
    }
  </script>
  <script type="module">
    import Vue from 'vue'
    import PicViewer from 'pic-viewer'

    new Vue({
      components: { PicViewer },
    }).$mount('#app')
  </script>
</body>

</html>

CDN + UMD

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
</head>

<body>
  <div id="app">
    <pic-viewer
      value="xxx"
      qrcode
    ></pic-viewer>
  </div>
  <script src="https://unpkg.com/vue@2"></script>
  <script src="https://unpkg.com/pic-viewer@0.8"></script>
  <script>
    new Vue({
      components: { PicViewer },
    }).$mount('#app')
  </script>
</body>

</html>

Props

名称说明类型默认值
value绑定值any
pattern展示模式('waterfall', 'swiper''table-cell'stringundefined(即文档流)
srcAt图片 src 的位置string / symbol / (value: any) => any
viewerjs是否启用 viewerjsbooleantrue
viewerjsPropsviewerjs 的参数object{ zIndex: 5000, zoomRatio: 0.4 }
swiperPropsswiper 的参数object{ observer: true }
qrcode是否将 value 转换为二维码boolean / 'auto'false
qrcodePropsqrcode 的参数object{ margin: 0, errorCorrectionLevel: 'L', width: 444, height: 444 }

qrcode

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

srcAt

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

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

Events

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

Slots

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

Methods

名称说明参数
preview手动预览(index: number) => void

编程式调用预览

<PicViewer
  ref="PicViewer"
  v-show="false"
  :value="value"
/>

<button @click="() => { $refs.PicViewer.preview(6) }">
  预览
</button>

二维码清晰度

默认的图片 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>

获取 Swiper 实例

<template>
  <PicViewer
    ref="picViewer"
    pattern="swiper"
    :swiperProps="{
      on: {
        init: onSwiperInit,
      },
    }"
  />
</template>

<script>
import PicViewer from 'pic-viewer'

export default {
  components: { PicViewer },
  data() {
    return {
      swiper: null
    }
  },
  methods: {
    onSwiperInit() {
      this.$nextTick(() => {
        this.swiper = this.$refs.picViewer.swiper
      })
    }
  }
}
</script>

更新日志

各版本详细改动请参考 release notes


Keywords

FAQs

Package last updated on 16 Dec 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc