UNPKG

@fe6/water-pro

Version:

An enterprise-class UI design language and Vue-based implementation

68 lines (62 loc) 2.18 kB
import { createVNode as _createVNode } from "vue"; import { defineComponent, ref } from 'vue'; import Modal from '../modal'; import Image from '../image'; import Typography from '../typography'; import PropTypes from '../_util/vue-types'; import useConfigInject from '../_util/hooks/useConfigInject'; import { errorUploadImage } from '../config-provider/error-image'; export default defineComponent({ name: 'APreviewImage', props: { value: PropTypes.string.def(''), placeholder: PropTypes.string, errorImage: PropTypes.string }, emits: ['changeUpload', 'change'], setup: function setup(props) { var _useConfigInject = useConfigInject('preview-image', props), configProvider = _useConfigInject.configProvider; var previewPoseterVisible = ref(false); var previewPoseterImage = ref(''); var handlePoseterPreview = function handlePoseterPreview() { previewPoseterVisible.value = true; }; var handlePoseterCancel = function handlePoseterCancel() { previewPoseterVisible.value = false; }; return { handlePoseterPreview: handlePoseterPreview, previewPoseterVisible: previewPoseterVisible, previewPoseterImage: previewPoseterImage, handlePoseterCancel: handlePoseterCancel, errorBackImage: props.errorImage || errorUploadImage, configProvider: configProvider }; }, render: function render() { var _this = this; var _a; return _createVNode("div", null, [_createVNode(Typography.Link, { "href": "javascript:;", "onClick": this.handlePoseterPreview }, { default: function _default() { return [_this.placeholder || ((_a = _this.configProvider.locale) === null || _a === void 0 ? void 0 : _a.PreviewImage.placeholder)]; } }), _createVNode(Modal, { "visible": this.previewPoseterVisible, "footer": null, "onCancel": this.handlePoseterCancel }, { default: function _default() { return [_createVNode(Image, { "width": "100%", "src": _this.value, "preview": false, "fallback": _this.errorBackImage }, null)]; } })]); } });