UNPKG

ivue-material-plus

Version:

A high quality UI components Library with Vue.js

1 lines 5.4 kB
{"version":3,"file":"image-preview-global.mjs","sources":["../../../../../src/components/ivue-image/image-preview-global.ts"],"sourcesContent":["import { createApp, h, getCurrentInstance } from 'vue';\r\nimport ImagePreview from './image-preview.vue';\r\n\r\nimport { isClient } from '../../utils/helpers';\r\n\r\nImagePreview.newInstance = (properties) => {\r\n if (!isClient) {\r\n return;\r\n }\r\n\r\n const _props = properties || {};\r\n\r\n let _instance = null;\r\n\r\n // 创建实例\r\n const Instance = createApp({\r\n data() {\r\n return Object.assign({}, _props, {\r\n /**\r\n * 显示\r\n *\r\n * @type {Boolean}\r\n */\r\n visible: false,\r\n /**\r\n * 图片预览列表\r\n *\r\n * @type {Array}\r\n */\r\n previewList: [],\r\n /**\r\n * 打开预览的第一项\r\n *\r\n * @type {Number}\r\n */\r\n initialIndex: 0,\r\n /**\r\n * 图片预览操作栏选项,按数组顺序排序\r\n *\r\n * @type {Array}\r\n */\r\n toolbar: [\r\n 'zoomIn',\r\n 'zoomOut',\r\n 'original',\r\n 'rotateLeft',\r\n 'rotateRight',\r\n 'download',\r\n ],\r\n /**\r\n * 是否循环切换\r\n *\r\n * @type {Boolean}\r\n */\r\n infinite: true,\r\n /**\r\n * 是否允许点击遮罩层关闭\r\n *\r\n * @type {Boolean}\r\n */\r\n maskClosable: true,\r\n /**\r\n * 是否将弹层放置于 body 内\r\n *\r\n * @type {Boolean}\r\n */\r\n transfer: true,\r\n });\r\n },\r\n created() {\r\n _instance = getCurrentInstance();\r\n },\r\n methods: {\r\n // 关闭弹窗\r\n handleClose() {\r\n this.visible = false;\r\n\r\n setTimeout(() => {\r\n this.destroy();\r\n this.removeInstance();\r\n }, 300);\r\n },\r\n // 注销实例\r\n destroy() {\r\n // 注销实例\r\n Instance.unmount();\r\n\r\n document.body.removeChild(container);\r\n },\r\n // 删除实例\r\n removeInstance() {},\r\n },\r\n render() {\r\n return h(\r\n ImagePreview,\r\n Object.assign({}, _props, {\r\n ref: 'imagePreview',\r\n modelValue: this.visible,\r\n previewList: this.previewList,\r\n initialIndex: this.initialIndex,\r\n toolbar: this.toolbar,\r\n infinite: this.infinite,\r\n maskClosable: this.maskClosable,\r\n transfer: this.transfer,\r\n 'onOn-close': this.handleClose,\r\n })\r\n );\r\n },\r\n });\r\n\r\n // 挂载实例到dom\r\n const container = document.createElement('div');\r\n document.body.appendChild(container);\r\n Instance.mount(container);\r\n\r\n // 获取当前节点\r\n const imagePreview = _instance.refs.imagePreview;\r\n\r\n return {\r\n show(options) {\r\n // 导入props\r\n Object.keys(options).forEach((key) => {\r\n imagePreview.$parent[key] = options[key];\r\n });\r\n\r\n // 显示预览\r\n imagePreview.$parent.visible = true;\r\n },\r\n component: imagePreview,\r\n };\r\n};\r\n\r\nexport default ImagePreview;\r\n"],"names":[],"mappings":";;;;;AAKA,YAAa,CAAA,WAAA,GAAc,CAAC,UAAe,KAAA;AACzC,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAA,OAAA;AAAA,GACF;AAEA,EAAM,MAAA,MAAA,GAAS,cAAc,EAAC,CAAA;AAE9B,EAAA,IAAI,SAAY,GAAA,IAAA,CAAA;AAGhB,EAAA,MAAM,WAAW,SAAU,CAAA;AAAA,IACzB,IAAO,GAAA;AACL,MAAA,OAAO,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,MAAQ,EAAA;AAAA,QAM/B,OAAS,EAAA,KAAA;AAAA,QAMT,aAAa,EAAC;AAAA,QAMd,YAAc,EAAA,CAAA;AAAA,QAMd,OAAS,EAAA;AAAA,UACP,QAAA;AAAA,UACA,SAAA;AAAA,UACA,UAAA;AAAA,UACA,YAAA;AAAA,UACA,aAAA;AAAA,UACA,UAAA;AAAA,SACF;AAAA,QAMA,QAAU,EAAA,IAAA;AAAA,QAMV,YAAc,EAAA,IAAA;AAAA,QAMd,QAAU,EAAA,IAAA;AAAA,OACX,CAAA,CAAA;AAAA,KACH;AAAA,IACA,OAAU,GAAA;AACR,MAAA,SAAA,GAAY,kBAAmB,EAAA,CAAA;AAAA,KACjC;AAAA,IACA,OAAS,EAAA;AAAA,MAEP,WAAc,GAAA;AACZ,QAAA,IAAA,CAAK,OAAU,GAAA,KAAA,CAAA;AAEf,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AACb,UAAA,IAAA,CAAK,cAAe,EAAA,CAAA;AAAA,WACnB,GAAG,CAAA,CAAA;AAAA,OACR;AAAA,MAEA,OAAU,GAAA;AAER,QAAA,QAAA,CAAS,OAAQ,EAAA,CAAA;AAEjB,QAAS,QAAA,CAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AAAA,OACrC;AAAA,MAEA,cAAiB,GAAA;AAAA,OAAC;AAAA,KACpB;AAAA,IACA,MAAS,GAAA;AACP,MAAO,OAAA,CAAA;AAAA,QACL,YAAA;AAAA,QACA,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,MAAQ,EAAA;AAAA,UACxB,GAAK,EAAA,cAAA;AAAA,UACL,YAAY,IAAK,CAAA,OAAA;AAAA,UACjB,aAAa,IAAK,CAAA,WAAA;AAAA,UAClB,cAAc,IAAK,CAAA,YAAA;AAAA,UACnB,SAAS,IAAK,CAAA,OAAA;AAAA,UACd,UAAU,IAAK,CAAA,QAAA;AAAA,UACf,cAAc,IAAK,CAAA,YAAA;AAAA,UACnB,UAAU,IAAK,CAAA,QAAA;AAAA,UACf,cAAc,IAAK,CAAA,WAAA;AAAA,SACpB,CAAA;AAAA,OACH,CAAA;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAGD,EAAM,MAAA,SAAA,GAAY,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAC9C,EAAS,QAAA,CAAA,IAAA,CAAK,YAAY,SAAS,CAAA,CAAA;AACnC,EAAA,QAAA,CAAS,MAAM,SAAS,CAAA,CAAA;AAGxB,EAAM,MAAA,YAAA,GAAe,UAAU,IAAK,CAAA,YAAA,CAAA;AAEpC,EAAO,OAAA;AAAA,IACL,KAAK,OAAS,EAAA;AAEZ,MAAA,MAAA,CAAO,IAAK,CAAA,OAAO,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACpC,QAAa,YAAA,CAAA,OAAA,CAAQ,OAAO,OAAQ,CAAA,GAAA,CAAA,CAAA;AAAA,OACrC,CAAA,CAAA;AAGD,MAAA,YAAA,CAAa,QAAQ,OAAU,GAAA,IAAA,CAAA;AAAA,KACjC;AAAA,IACA,SAAW,EAAA,YAAA;AAAA,GACb,CAAA;AACF,CAAA"}