UNPKG

v-auth-image

Version:

Vue directive to load and display secured images by custom headers. 基于 Vue 的权限图片获取查看,提供加载成功或失败回调。

2 lines 3.52 kB
(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["vauthimage"]=t():e["vauthimage"]=t()})("undefined"!==typeof self?self:this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="fb15")}({f6fd:function(e,t){(function(e){var t="currentScript",r=e.getElementsByTagName("script");t in e||Object.defineProperty(e,t,{get:function(){try{throw new Error}catch(n){var e,t=(/.*at [^\(]*\((.*):.+:.+\)$/gi.exec(n.stack)||[!1])[1];for(e in r)if(r[e].src==t||"interactive"==r[e].readyState)return r[e];return null}}})})(document)},fb15:function(e,t,r){"use strict";var n;(r.r(t),"undefined"!==typeof window)&&(r("f6fd"),(n=window.document.currentScript)&&(n=n.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))&&(r.p=n[1]));const a={install(e,t={}){const r=t.defaultSRC||"",n=t.defaultHeaders||null,o=t.getHeaders&&"[object Function]"===Object.prototype.toString.call(t.getHeaders),u=o?t.getHeaders:null;e.directive("auth-image",{bind(e,t){a.init(e,t,{defaultSRC:r,defaultHeaders:n,getHeaders:u})},inserted(e){a.load(e)},update(e,t){t.value!==t.oldValue&&(e.setAttribute("data-src",t.value),a.load(e))},unbind(e,t){"success"===t.arg?delete e._v_auth_image_success:"error"===t.arg?delete e._v_auth_image_error:(delete e._v_auth_image_defaults,e.removeAttribute("data-src"))}})},init(e,t,r){"success"===t.arg?e._v_auth_image_success=t.value:"error"===t.arg?e._v_auth_image_error=t.value:(e._v_auth_image_defaults=r,e.setAttribute("data-src",t.value),e.setAttribute("src",r.defaultSRC))},load(e){const t=e.dataset.src,r=e._v_auth_image_defaults;let n={};if(r.defaultHeaders&&Object.assign(n,r.defaultHeaders),r.getHeaders){const e=r.getHeaders();Object.assign(n,e)}t&&(a.requestImage(t,e,n),e.removeAttribute("data-src"))},requestImage(e,t,r){const n=new XMLHttpRequest;n.responseType="blob",n.open("get",e,!0),Object.keys(r).forEach(e=>{n.setRequestHeader(e,r[e])}),n.onreadystatechange=e=>{if(n.readyState===XMLHttpRequest.DONE)if(200===n.status){t.src=URL.createObjectURL(n.response);const r=-1===n.response.type.indexOf("application/json");if(r)t.onload=()=>{URL.revokeObjectURL(t.src);const r=t._v_auth_image_success;r&&r(e)},t.onerror=e=>{t.alt="加载图片失败";const r=t._v_auth_image_error;r&&r(e)};else{t.alt="加载图片失败";const r=t._v_auth_image_error;r&&r(e)}}else{t.alt="加载图片失败";const r=t._v_auth_image_error;r&&r(e)}},n.send(null)}};var o=a;const u=function(e,t={}){e.use(o,t)};"undefined"!==typeof window&&window.Vue&&u(window.Vue);var s=o;t["default"]=s}})})); //# sourceMappingURL=vauthimage.umd.min.js.map