UNPKG

@zhsz/cool-design-dv

Version:

81 lines (80 loc) 2.22 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const vue = require("vue"); const lodashEs = require("lodash-es"); const photoSphereViewer = require("photo-sphere-viewer"); require("photo-sphere-viewer/dist/photo-sphere-viewer.css"); const _hoisted_1 = ["id"]; const _hoisted_2 = { key: 1, absolute: "", "top-0": "", "left-0": "", "wh-full": "", "z-1": "", "bg-hex-f2f2f2": "", "f-c-c": "" }; const __default__ = vue.defineComponent({ name: "vr-preview" }); const _sfc_main = /* @__PURE__ */ vue.defineComponent({ ...__default__, props: { url: { default: "" }, token_header: {}, token: {}, style: { default: { width: "100%", height: "100px" } }, errorText: { default: "加载失败" } }, setup(__props) { const props = __props; let viewer; const vrRef = vue.ref(null); const vrId = lodashEs.uniqueId("vr_"); const hasError = vue.ref(false); vue.onMounted(() => { const headers = {}; if (props.token_header) { headers[props.token_header] = props.token; } viewer = new photoSphereViewer.Viewer({ container: vrId, navbar: ["fullscreen"], requestHeaders: headers }); vue.watchEffect(() => { if (props.url) { viewer.setPanorama(props.url).then(() => { hasError.value = false; }).catch((_e) => { hasError.value = true; window.console.log("error"); }); } }); }); vue.onUnmounted(() => { if (viewer) viewer.destroy(); }); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock("div", { style: vue.normalizeStyle(props.style), relative: "" }, [ !hasError.value ? (vue.openBlock(), vue.createElementBlock("div", { key: 0, id: vue.unref(vrId), ref_key: "vrRef", ref: vrRef, "wh-full": "" }, null, 8, _hoisted_1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, vue.toDisplayString(props.errorText), 1)) ], 4); }; } }); exports.default = _sfc_main;