1794 lines
68 KiB
JavaScript
1794 lines
68 KiB
JavaScript
import { b as buildAssetsURL } from '../../handlers/renderer.mjs';
|
|
import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createVNode, Transition, withCtx, withDirectives, createElementVNode, toDisplayString, vShow, h, inject, normalizeStyle, createBlock, resolveDynamicComponent, createCommentVNode, useSlots, ref, provide, Teleport, mergeProps, createSlots, shallowReactive, watch, Fragment, withModifiers, getCurrentInstance, nextTick, useSSRContext, isRef, onScopeDispose, isVNode, createTextVNode, renderList, watchEffect, render, reactive, createApp, toRefs } from 'vue';
|
|
import { b as buildProps, l as isNumber, c as withInstall, d as definePropType, i as iconPropType, u as useLocale, F as FOCUS_TRAP_INJECTION_KEY, E as ElIcon, m as useDeprecated, n as ElFocusTrap, p as useGlobalComponentSettings, q as TypeComponentsMap, s as withInstallFunction, _ as _export_sfc, C as CloseComponents, U as UPDATE_MODEL_EVENT, e as isBoolean, t as useZIndex, v as useGlobalConfig, a as addUnit, x as mutable, y as TypeComponents, z as EVENT_CODE, A as hasClass, B as getStyle, D as addClass, G as messageConfig, f as _imports_1$3, I as removeClass, J as isElement, K as changeAnonymousHttp, L as MyUserDeleteCollectHttp, N as MyUserCollectHttp, O as MyUserPublishHttp } from './cross-icon-42ef7441.mjs';
|
|
import { d as useNamespace, f as useId, g as defaultNamespace, t as throwError, u as useRouter, e as useRoute } from '../server.mjs';
|
|
import { NOOP, isObject, isFunction, isString, hyphenate } from '@vue/shared';
|
|
import { useEventListener, useResizeObserver, isClient, useTimeoutFn } from '@vueuse/core';
|
|
import { isUndefined } from 'lodash-unified';
|
|
import { computed as computed$1 } from '@vue/reactivity';
|
|
import { ssrRenderAttrs, ssrRenderAttr, ssrInterpolate, ssrRenderComponent, ssrRenderClass, ssrGetDirectiveProps, ssrRenderList } from 'vue/server-renderer';
|
|
import { _ as _export_sfc$1 } from './_plugin-vue_export-helper-e3874580.mjs';
|
|
import { useRoute as useRoute$1 } from 'vue-router';
|
|
|
|
let scrollBarWidth;
|
|
const getScrollBarWidth = (namespace) => {
|
|
var _a;
|
|
if (!isClient)
|
|
return 0;
|
|
if (scrollBarWidth !== void 0)
|
|
return scrollBarWidth;
|
|
const outer = document.createElement("div");
|
|
outer.className = `${namespace}-scrollbar__wrap`;
|
|
outer.style.visibility = "hidden";
|
|
outer.style.width = "100px";
|
|
outer.style.position = "absolute";
|
|
outer.style.top = "-9999px";
|
|
document.body.appendChild(outer);
|
|
const widthNoScroll = outer.offsetWidth;
|
|
outer.style.overflow = "scroll";
|
|
const inner = document.createElement("div");
|
|
inner.style.width = "100%";
|
|
outer.appendChild(inner);
|
|
const widthWithScroll = inner.offsetWidth;
|
|
(_a = outer.parentNode) == null ? void 0 : _a.removeChild(outer);
|
|
scrollBarWidth = widthNoScroll - widthWithScroll;
|
|
return scrollBarWidth;
|
|
};
|
|
const composeRefs = (...refs) => {
|
|
return (el) => {
|
|
refs.forEach((ref2) => {
|
|
if (isFunction(ref2)) {
|
|
ref2(el);
|
|
} else {
|
|
ref2.value = el;
|
|
}
|
|
});
|
|
};
|
|
};
|
|
var PatchFlags = /* @__PURE__ */ ((PatchFlags2) => {
|
|
PatchFlags2[PatchFlags2["TEXT"] = 1] = "TEXT";
|
|
PatchFlags2[PatchFlags2["CLASS"] = 2] = "CLASS";
|
|
PatchFlags2[PatchFlags2["STYLE"] = 4] = "STYLE";
|
|
PatchFlags2[PatchFlags2["PROPS"] = 8] = "PROPS";
|
|
PatchFlags2[PatchFlags2["FULL_PROPS"] = 16] = "FULL_PROPS";
|
|
PatchFlags2[PatchFlags2["HYDRATE_EVENTS"] = 32] = "HYDRATE_EVENTS";
|
|
PatchFlags2[PatchFlags2["STABLE_FRAGMENT"] = 64] = "STABLE_FRAGMENT";
|
|
PatchFlags2[PatchFlags2["KEYED_FRAGMENT"] = 128] = "KEYED_FRAGMENT";
|
|
PatchFlags2[PatchFlags2["UNKEYED_FRAGMENT"] = 256] = "UNKEYED_FRAGMENT";
|
|
PatchFlags2[PatchFlags2["NEED_PATCH"] = 512] = "NEED_PATCH";
|
|
PatchFlags2[PatchFlags2["DYNAMIC_SLOTS"] = 1024] = "DYNAMIC_SLOTS";
|
|
PatchFlags2[PatchFlags2["HOISTED"] = -1] = "HOISTED";
|
|
PatchFlags2[PatchFlags2["BAIL"] = -2] = "BAIL";
|
|
return PatchFlags2;
|
|
})(PatchFlags || {});
|
|
const useLockscreen = (trigger, options = {}) => {
|
|
if (!isRef(trigger)) {
|
|
throwError("[useLockscreen]", "You need to pass a ref param to this function");
|
|
}
|
|
const ns = options.ns || useNamespace("popup");
|
|
const hiddenCls = computed$1(() => ns.bm("parent", "hidden"));
|
|
if (!isClient || hasClass(document.body, hiddenCls.value)) {
|
|
return;
|
|
}
|
|
let scrollBarWidth2 = 0;
|
|
let withoutHiddenClass = false;
|
|
let bodyWidth = "0";
|
|
const cleanup = () => {
|
|
setTimeout(() => {
|
|
removeClass(document == null ? void 0 : document.body, hiddenCls.value);
|
|
if (withoutHiddenClass && document) {
|
|
document.body.style.width = bodyWidth;
|
|
}
|
|
}, 200);
|
|
};
|
|
watch(trigger, (val) => {
|
|
if (!val) {
|
|
cleanup();
|
|
return;
|
|
}
|
|
withoutHiddenClass = !hasClass(document.body, hiddenCls.value);
|
|
if (withoutHiddenClass) {
|
|
bodyWidth = document.body.style.width;
|
|
}
|
|
scrollBarWidth2 = getScrollBarWidth(ns.namespace.value);
|
|
const bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
|
|
const bodyOverflowY = getStyle(document.body, "overflowY");
|
|
if (scrollBarWidth2 > 0 && (bodyHasOverflow || bodyOverflowY === "scroll") && withoutHiddenClass) {
|
|
document.body.style.width = `calc(100% - ${scrollBarWidth2}px)`;
|
|
}
|
|
addClass(document.body, hiddenCls.value);
|
|
});
|
|
onScopeDispose(() => cleanup());
|
|
};
|
|
const useSameTarget = (handleClick) => {
|
|
if (!handleClick) {
|
|
return { onClick: NOOP, onMousedown: NOOP, onMouseup: NOOP };
|
|
}
|
|
let mousedownTarget = false;
|
|
let mouseupTarget = false;
|
|
const onClick = (e) => {
|
|
if (mousedownTarget && mouseupTarget) {
|
|
handleClick(e);
|
|
}
|
|
mousedownTarget = mouseupTarget = false;
|
|
};
|
|
const onMousedown = (e) => {
|
|
mousedownTarget = e.target === e.currentTarget;
|
|
};
|
|
const onMouseup = (e) => {
|
|
mouseupTarget = e.target === e.currentTarget;
|
|
};
|
|
return { onClick, onMousedown, onMouseup };
|
|
};
|
|
const badgeProps = buildProps({
|
|
value: {
|
|
type: [String, Number],
|
|
default: ""
|
|
},
|
|
max: {
|
|
type: Number,
|
|
default: 99
|
|
},
|
|
isDot: Boolean,
|
|
hidden: Boolean,
|
|
type: {
|
|
type: String,
|
|
values: ["primary", "success", "warning", "info", "danger"],
|
|
default: "danger"
|
|
}
|
|
});
|
|
const _hoisted_1$3 = ["textContent"];
|
|
const __default__$3 = defineComponent({
|
|
name: "ElBadge"
|
|
});
|
|
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
...__default__$3,
|
|
props: badgeProps,
|
|
setup(__props, { expose }) {
|
|
const props = __props;
|
|
const ns = useNamespace("badge");
|
|
const content = computed(() => {
|
|
if (props.isDot)
|
|
return "";
|
|
if (isNumber(props.value) && isNumber(props.max)) {
|
|
return props.max < props.value ? `${props.max}+` : `${props.value}`;
|
|
}
|
|
return `${props.value}`;
|
|
});
|
|
expose({
|
|
content
|
|
});
|
|
return (_ctx, _cache) => {
|
|
return openBlock(), createElementBlock("div", {
|
|
class: normalizeClass(unref(ns).b())
|
|
}, [
|
|
renderSlot(_ctx.$slots, "default"),
|
|
createVNode(Transition, {
|
|
name: `${unref(ns).namespace.value}-zoom-in-center`,
|
|
persisted: ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
withDirectives(createElementVNode("sup", {
|
|
class: normalizeClass([
|
|
unref(ns).e("content"),
|
|
unref(ns).em("content", _ctx.type),
|
|
unref(ns).is("fixed", !!_ctx.$slots.default),
|
|
unref(ns).is("dot", _ctx.isDot)
|
|
]),
|
|
textContent: toDisplayString(unref(content))
|
|
}, null, 10, _hoisted_1$3), [
|
|
[vShow, !_ctx.hidden && (unref(content) || _ctx.isDot)]
|
|
])
|
|
]),
|
|
_: 1
|
|
}, 8, ["name"])
|
|
], 2);
|
|
};
|
|
}
|
|
});
|
|
var Badge = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);
|
|
const ElBadge = withInstall(Badge);
|
|
const overlayProps = buildProps({
|
|
mask: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
customMaskEvent: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
overlayClass: {
|
|
type: definePropType([
|
|
String,
|
|
Array,
|
|
Object
|
|
])
|
|
},
|
|
zIndex: {
|
|
type: definePropType([String, Number])
|
|
}
|
|
});
|
|
const overlayEmits = {
|
|
click: (evt) => evt instanceof MouseEvent
|
|
};
|
|
const BLOCK = "overlay";
|
|
var Overlay = defineComponent({
|
|
name: "ElOverlay",
|
|
props: overlayProps,
|
|
emits: overlayEmits,
|
|
setup(props, { slots, emit }) {
|
|
const ns = useNamespace(BLOCK);
|
|
const onMaskClick = (e) => {
|
|
emit("click", e);
|
|
};
|
|
const { onClick, onMousedown, onMouseup } = useSameTarget(props.customMaskEvent ? void 0 : onMaskClick);
|
|
return () => {
|
|
return props.mask ? createVNode("div", {
|
|
class: [ns.b(), props.overlayClass],
|
|
style: {
|
|
zIndex: props.zIndex
|
|
},
|
|
onClick,
|
|
onMousedown,
|
|
onMouseup
|
|
}, [renderSlot(slots, "default")], PatchFlags.STYLE | PatchFlags.CLASS | PatchFlags.PROPS, ["onClick", "onMouseup", "onMousedown"]) : h("div", {
|
|
class: props.overlayClass,
|
|
style: {
|
|
zIndex: props.zIndex,
|
|
position: "fixed",
|
|
top: "0px",
|
|
right: "0px",
|
|
bottom: "0px",
|
|
left: "0px"
|
|
}
|
|
}, [renderSlot(slots, "default")]);
|
|
};
|
|
}
|
|
});
|
|
const ElOverlay = Overlay;
|
|
const dialogInjectionKey = Symbol("dialogInjectionKey");
|
|
const dialogContentProps = buildProps({
|
|
center: Boolean,
|
|
alignCenter: Boolean,
|
|
closeIcon: {
|
|
type: iconPropType
|
|
},
|
|
customClass: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
draggable: Boolean,
|
|
fullscreen: Boolean,
|
|
showClose: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
title: {
|
|
type: String,
|
|
default: ""
|
|
},
|
|
ariaLevel: {
|
|
type: String,
|
|
default: "2"
|
|
}
|
|
});
|
|
const dialogContentEmits = {
|
|
close: () => true
|
|
};
|
|
const _hoisted_1$2 = ["aria-level"];
|
|
const _hoisted_2$1 = ["aria-label"];
|
|
const _hoisted_3 = ["id"];
|
|
const __default__$2 = defineComponent({ name: "ElDialogContent" });
|
|
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
...__default__$2,
|
|
props: dialogContentProps,
|
|
emits: dialogContentEmits,
|
|
setup(__props) {
|
|
const props = __props;
|
|
const { t } = useLocale();
|
|
const { Close } = CloseComponents;
|
|
const { dialogRef, headerRef, bodyId, ns, style } = inject(dialogInjectionKey);
|
|
const { focusTrapRef } = inject(FOCUS_TRAP_INJECTION_KEY);
|
|
const dialogKls = computed(() => [
|
|
ns.b(),
|
|
ns.is("fullscreen", props.fullscreen),
|
|
ns.is("draggable", props.draggable),
|
|
ns.is("align-center", props.alignCenter),
|
|
{ [ns.m("center")]: props.center },
|
|
props.customClass
|
|
]);
|
|
const composedDialogRef = composeRefs(focusTrapRef, dialogRef);
|
|
computed(() => props.draggable);
|
|
return (_ctx, _cache) => {
|
|
return openBlock(), createElementBlock("div", {
|
|
ref: unref(composedDialogRef),
|
|
class: normalizeClass(unref(dialogKls)),
|
|
style: normalizeStyle(unref(style)),
|
|
tabindex: "-1"
|
|
}, [
|
|
createElementVNode("header", {
|
|
ref_key: "headerRef",
|
|
ref: headerRef,
|
|
class: normalizeClass(unref(ns).e("header"))
|
|
}, [
|
|
renderSlot(_ctx.$slots, "header", {}, () => [
|
|
createElementVNode("span", {
|
|
role: "heading",
|
|
"aria-level": _ctx.ariaLevel,
|
|
class: normalizeClass(unref(ns).e("title"))
|
|
}, toDisplayString(_ctx.title), 11, _hoisted_1$2)
|
|
]),
|
|
_ctx.showClose ? (openBlock(), createElementBlock("button", {
|
|
key: 0,
|
|
"aria-label": unref(t)("el.dialog.close"),
|
|
class: normalizeClass(unref(ns).e("headerbtn")),
|
|
type: "button",
|
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
|
|
}, [
|
|
createVNode(unref(ElIcon), {
|
|
class: normalizeClass(unref(ns).e("close"))
|
|
}, {
|
|
default: withCtx(() => [
|
|
(openBlock(), createBlock(resolveDynamicComponent(_ctx.closeIcon || unref(Close))))
|
|
]),
|
|
_: 1
|
|
}, 8, ["class"])
|
|
], 10, _hoisted_2$1)) : createCommentVNode("v-if", true)
|
|
], 2),
|
|
createElementVNode("div", {
|
|
id: unref(bodyId),
|
|
class: normalizeClass(unref(ns).e("body"))
|
|
}, [
|
|
renderSlot(_ctx.$slots, "default")
|
|
], 10, _hoisted_3),
|
|
_ctx.$slots.footer ? (openBlock(), createElementBlock("footer", {
|
|
key: 0,
|
|
class: normalizeClass(unref(ns).e("footer"))
|
|
}, [
|
|
renderSlot(_ctx.$slots, "footer")
|
|
], 2)) : createCommentVNode("v-if", true)
|
|
], 6);
|
|
};
|
|
}
|
|
});
|
|
var ElDialogContent = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);
|
|
const dialogProps = buildProps({
|
|
...dialogContentProps,
|
|
appendToBody: Boolean,
|
|
appendTo: {
|
|
type: definePropType(String),
|
|
default: "body"
|
|
},
|
|
beforeClose: {
|
|
type: definePropType(Function)
|
|
},
|
|
destroyOnClose: Boolean,
|
|
closeOnClickModal: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
closeOnPressEscape: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
lockScroll: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
modal: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
openDelay: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
closeDelay: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
top: {
|
|
type: String
|
|
},
|
|
modelValue: Boolean,
|
|
modalClass: String,
|
|
width: {
|
|
type: [String, Number]
|
|
},
|
|
zIndex: {
|
|
type: Number
|
|
},
|
|
trapFocus: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
headerAriaLevel: {
|
|
type: String,
|
|
default: "2"
|
|
}
|
|
});
|
|
const dialogEmits = {
|
|
open: () => true,
|
|
opened: () => true,
|
|
close: () => true,
|
|
closed: () => true,
|
|
[UPDATE_MODEL_EVENT]: (value) => isBoolean(value),
|
|
openAutoFocus: () => true,
|
|
closeAutoFocus: () => true
|
|
};
|
|
const useDialog = (props, targetRef) => {
|
|
var _a;
|
|
const instance = getCurrentInstance();
|
|
const emit = instance.emit;
|
|
const { nextZIndex } = useZIndex();
|
|
let lastPosition = "";
|
|
const titleId = useId();
|
|
const bodyId = useId();
|
|
const visible = ref(false);
|
|
const closed = ref(false);
|
|
const rendered = ref(false);
|
|
const zIndex = ref((_a = props.zIndex) != null ? _a : nextZIndex());
|
|
let openTimer = void 0;
|
|
let closeTimer = void 0;
|
|
const namespace = useGlobalConfig("namespace", defaultNamespace);
|
|
const style = computed(() => {
|
|
const style2 = {};
|
|
const varPrefix = `--${namespace.value}-dialog`;
|
|
if (!props.fullscreen) {
|
|
if (props.top) {
|
|
style2[`${varPrefix}-margin-top`] = props.top;
|
|
}
|
|
if (props.width) {
|
|
style2[`${varPrefix}-width`] = addUnit(props.width);
|
|
}
|
|
}
|
|
return style2;
|
|
});
|
|
const overlayDialogStyle = computed(() => {
|
|
if (props.alignCenter) {
|
|
return { display: "flex" };
|
|
}
|
|
return {};
|
|
});
|
|
function afterEnter() {
|
|
emit("opened");
|
|
}
|
|
function afterLeave() {
|
|
emit("closed");
|
|
emit(UPDATE_MODEL_EVENT, false);
|
|
if (props.destroyOnClose) {
|
|
rendered.value = false;
|
|
}
|
|
}
|
|
function beforeLeave() {
|
|
emit("close");
|
|
}
|
|
function open() {
|
|
closeTimer == null ? void 0 : closeTimer();
|
|
openTimer == null ? void 0 : openTimer();
|
|
if (props.openDelay && props.openDelay > 0) {
|
|
({ stop: openTimer } = useTimeoutFn(() => doOpen(), props.openDelay));
|
|
} else {
|
|
doOpen();
|
|
}
|
|
}
|
|
function close() {
|
|
openTimer == null ? void 0 : openTimer();
|
|
closeTimer == null ? void 0 : closeTimer();
|
|
if (props.closeDelay && props.closeDelay > 0) {
|
|
({ stop: closeTimer } = useTimeoutFn(() => doClose(), props.closeDelay));
|
|
} else {
|
|
doClose();
|
|
}
|
|
}
|
|
function handleClose() {
|
|
function hide(shouldCancel) {
|
|
if (shouldCancel)
|
|
return;
|
|
closed.value = true;
|
|
visible.value = false;
|
|
}
|
|
if (props.beforeClose) {
|
|
props.beforeClose(hide);
|
|
} else {
|
|
close();
|
|
}
|
|
}
|
|
function onModalClick() {
|
|
if (props.closeOnClickModal) {
|
|
handleClose();
|
|
}
|
|
}
|
|
function doOpen() {
|
|
if (!isClient)
|
|
return;
|
|
visible.value = true;
|
|
}
|
|
function doClose() {
|
|
visible.value = false;
|
|
}
|
|
function onOpenAutoFocus() {
|
|
emit("openAutoFocus");
|
|
}
|
|
function onCloseAutoFocus() {
|
|
emit("closeAutoFocus");
|
|
}
|
|
function onFocusoutPrevented(event) {
|
|
var _a2;
|
|
if (((_a2 = event.detail) == null ? void 0 : _a2.focusReason) === "pointer") {
|
|
event.preventDefault();
|
|
}
|
|
}
|
|
if (props.lockScroll) {
|
|
useLockscreen(visible);
|
|
}
|
|
function onCloseRequested() {
|
|
if (props.closeOnPressEscape) {
|
|
handleClose();
|
|
}
|
|
}
|
|
watch(() => props.modelValue, (val) => {
|
|
if (val) {
|
|
closed.value = false;
|
|
open();
|
|
rendered.value = true;
|
|
zIndex.value = isUndefined(props.zIndex) ? nextZIndex() : zIndex.value++;
|
|
nextTick(() => {
|
|
emit("open");
|
|
if (targetRef.value) {
|
|
targetRef.value.scrollTop = 0;
|
|
}
|
|
});
|
|
} else {
|
|
if (visible.value) {
|
|
close();
|
|
}
|
|
}
|
|
});
|
|
watch(() => props.fullscreen, (val) => {
|
|
if (!targetRef.value)
|
|
return;
|
|
if (val) {
|
|
lastPosition = targetRef.value.style.transform;
|
|
targetRef.value.style.transform = "";
|
|
} else {
|
|
targetRef.value.style.transform = lastPosition;
|
|
}
|
|
});
|
|
return {
|
|
afterEnter,
|
|
afterLeave,
|
|
beforeLeave,
|
|
handleClose,
|
|
onModalClick,
|
|
close,
|
|
doClose,
|
|
onOpenAutoFocus,
|
|
onCloseAutoFocus,
|
|
onCloseRequested,
|
|
onFocusoutPrevented,
|
|
titleId,
|
|
bodyId,
|
|
closed,
|
|
style,
|
|
overlayDialogStyle,
|
|
rendered,
|
|
visible,
|
|
zIndex
|
|
};
|
|
};
|
|
const _hoisted_1$1 = ["aria-label", "aria-labelledby", "aria-describedby"];
|
|
const __default__$1 = defineComponent({
|
|
name: "ElDialog",
|
|
inheritAttrs: false
|
|
});
|
|
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
...__default__$1,
|
|
props: dialogProps,
|
|
emits: dialogEmits,
|
|
setup(__props, { expose }) {
|
|
const props = __props;
|
|
const slots = useSlots();
|
|
useDeprecated({
|
|
scope: "el-dialog",
|
|
from: "the title slot",
|
|
replacement: "the header slot",
|
|
version: "3.0.0",
|
|
ref: "https://element-plus.org/en-US/component/dialog.html#slots"
|
|
}, computed(() => !!slots.title));
|
|
useDeprecated({
|
|
scope: "el-dialog",
|
|
from: "custom-class",
|
|
replacement: "class",
|
|
version: "2.3.0",
|
|
ref: "https://element-plus.org/en-US/component/dialog.html#attributes",
|
|
type: "Attribute"
|
|
}, computed(() => !!props.customClass));
|
|
const ns = useNamespace("dialog");
|
|
const dialogRef = ref();
|
|
const headerRef = ref();
|
|
const dialogContentRef = ref();
|
|
const {
|
|
visible,
|
|
titleId,
|
|
bodyId,
|
|
style,
|
|
overlayDialogStyle,
|
|
rendered,
|
|
zIndex,
|
|
afterEnter,
|
|
afterLeave,
|
|
beforeLeave,
|
|
handleClose,
|
|
onModalClick,
|
|
onOpenAutoFocus,
|
|
onCloseAutoFocus,
|
|
onCloseRequested,
|
|
onFocusoutPrevented
|
|
} = useDialog(props, dialogRef);
|
|
provide(dialogInjectionKey, {
|
|
dialogRef,
|
|
headerRef,
|
|
bodyId,
|
|
ns,
|
|
rendered,
|
|
style
|
|
});
|
|
const overlayEvent = useSameTarget(onModalClick);
|
|
const draggable = computed(() => props.draggable && !props.fullscreen);
|
|
expose({
|
|
visible,
|
|
dialogContentRef
|
|
});
|
|
return (_ctx, _cache) => {
|
|
return openBlock(), createBlock(Teleport, {
|
|
to: _ctx.appendTo,
|
|
disabled: _ctx.appendTo !== "body" ? false : !_ctx.appendToBody
|
|
}, [
|
|
createVNode(Transition, {
|
|
name: "dialog-fade",
|
|
onAfterEnter: unref(afterEnter),
|
|
onAfterLeave: unref(afterLeave),
|
|
onBeforeLeave: unref(beforeLeave),
|
|
persisted: ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
withDirectives(createVNode(unref(ElOverlay), {
|
|
"custom-mask-event": "",
|
|
mask: _ctx.modal,
|
|
"overlay-class": _ctx.modalClass,
|
|
"z-index": unref(zIndex)
|
|
}, {
|
|
default: withCtx(() => [
|
|
createElementVNode("div", {
|
|
role: "dialog",
|
|
"aria-modal": "true",
|
|
"aria-label": _ctx.title || void 0,
|
|
"aria-labelledby": !_ctx.title ? unref(titleId) : void 0,
|
|
"aria-describedby": unref(bodyId),
|
|
class: normalizeClass(`${unref(ns).namespace.value}-overlay-dialog`),
|
|
style: normalizeStyle(unref(overlayDialogStyle)),
|
|
onClick: _cache[0] || (_cache[0] = (...args) => unref(overlayEvent).onClick && unref(overlayEvent).onClick(...args)),
|
|
onMousedown: _cache[1] || (_cache[1] = (...args) => unref(overlayEvent).onMousedown && unref(overlayEvent).onMousedown(...args)),
|
|
onMouseup: _cache[2] || (_cache[2] = (...args) => unref(overlayEvent).onMouseup && unref(overlayEvent).onMouseup(...args))
|
|
}, [
|
|
createVNode(unref(ElFocusTrap), {
|
|
loop: "",
|
|
trapped: unref(visible),
|
|
"focus-start-el": "container",
|
|
onFocusAfterTrapped: unref(onOpenAutoFocus),
|
|
onFocusAfterReleased: unref(onCloseAutoFocus),
|
|
onFocusoutPrevented: unref(onFocusoutPrevented),
|
|
onReleaseRequested: unref(onCloseRequested)
|
|
}, {
|
|
default: withCtx(() => [
|
|
unref(rendered) ? (openBlock(), createBlock(ElDialogContent, mergeProps({
|
|
key: 0,
|
|
ref_key: "dialogContentRef",
|
|
ref: dialogContentRef
|
|
}, _ctx.$attrs, {
|
|
"custom-class": _ctx.customClass,
|
|
center: _ctx.center,
|
|
"align-center": _ctx.alignCenter,
|
|
"close-icon": _ctx.closeIcon,
|
|
draggable: unref(draggable),
|
|
fullscreen: _ctx.fullscreen,
|
|
"show-close": _ctx.showClose,
|
|
title: _ctx.title,
|
|
"aria-level": _ctx.headerAriaLevel,
|
|
onClose: unref(handleClose)
|
|
}), createSlots({
|
|
header: withCtx(() => [
|
|
!_ctx.$slots.title ? renderSlot(_ctx.$slots, "header", {
|
|
key: 0,
|
|
close: unref(handleClose),
|
|
titleId: unref(titleId),
|
|
titleClass: unref(ns).e("title")
|
|
}) : renderSlot(_ctx.$slots, "title", { key: 1 })
|
|
]),
|
|
default: withCtx(() => [
|
|
renderSlot(_ctx.$slots, "default")
|
|
]),
|
|
_: 2
|
|
}, [
|
|
_ctx.$slots.footer ? {
|
|
name: "footer",
|
|
fn: withCtx(() => [
|
|
renderSlot(_ctx.$slots, "footer")
|
|
])
|
|
} : void 0
|
|
]), 1040, ["custom-class", "center", "align-center", "close-icon", "draggable", "fullscreen", "show-close", "title", "aria-level", "onClose"])) : createCommentVNode("v-if", true)
|
|
]),
|
|
_: 3
|
|
}, 8, ["trapped", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusoutPrevented", "onReleaseRequested"])
|
|
], 46, _hoisted_1$1)
|
|
]),
|
|
_: 3
|
|
}, 8, ["mask", "overlay-class", "z-index"]), [
|
|
[vShow, unref(visible)]
|
|
])
|
|
]),
|
|
_: 3
|
|
}, 8, ["onAfterEnter", "onAfterLeave", "onBeforeLeave"])
|
|
], 8, ["to", "disabled"]);
|
|
};
|
|
}
|
|
});
|
|
var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]]);
|
|
const ElDialog = withInstall(Dialog);
|
|
function createLoadingComponent(options) {
|
|
let afterLeaveTimer;
|
|
const afterLeaveFlag = ref(false);
|
|
const data = reactive({
|
|
...options,
|
|
originalPosition: "",
|
|
originalOverflow: "",
|
|
visible: false
|
|
});
|
|
function setText(text) {
|
|
data.text = text;
|
|
}
|
|
function destroySelf() {
|
|
const target = data.parent;
|
|
const ns = vm.ns;
|
|
if (!target.vLoadingAddClassList) {
|
|
let loadingNumber = target.getAttribute("loading-number");
|
|
loadingNumber = Number.parseInt(loadingNumber) - 1;
|
|
if (!loadingNumber) {
|
|
removeClass(target, ns.bm("parent", "relative"));
|
|
target.removeAttribute("loading-number");
|
|
} else {
|
|
target.setAttribute("loading-number", loadingNumber.toString());
|
|
}
|
|
removeClass(target, ns.bm("parent", "hidden"));
|
|
}
|
|
removeElLoadingChild();
|
|
loadingInstance.unmount();
|
|
}
|
|
function removeElLoadingChild() {
|
|
var _a, _b;
|
|
(_b = (_a = vm.$el) == null ? void 0 : _a.parentNode) == null ? void 0 : _b.removeChild(vm.$el);
|
|
}
|
|
function close() {
|
|
var _a;
|
|
if (options.beforeClose && !options.beforeClose())
|
|
return;
|
|
afterLeaveFlag.value = true;
|
|
clearTimeout(afterLeaveTimer);
|
|
afterLeaveTimer = window.setTimeout(handleAfterLeave, 400);
|
|
data.visible = false;
|
|
(_a = options.closed) == null ? void 0 : _a.call(options);
|
|
}
|
|
function handleAfterLeave() {
|
|
if (!afterLeaveFlag.value)
|
|
return;
|
|
const target = data.parent;
|
|
afterLeaveFlag.value = false;
|
|
target.vLoadingAddClassList = void 0;
|
|
destroySelf();
|
|
}
|
|
const elLoadingComponent = defineComponent({
|
|
name: "ElLoading",
|
|
setup(_, { expose }) {
|
|
const { ns, zIndex } = useGlobalComponentSettings("loading");
|
|
expose({
|
|
ns,
|
|
zIndex
|
|
});
|
|
return () => {
|
|
const svg = data.spinner || data.svg;
|
|
const spinner = h("svg", {
|
|
class: "circular",
|
|
viewBox: data.svgViewBox ? data.svgViewBox : "0 0 50 50",
|
|
...svg ? { innerHTML: svg } : {}
|
|
}, [
|
|
h("circle", {
|
|
class: "path",
|
|
cx: "25",
|
|
cy: "25",
|
|
r: "20",
|
|
fill: "none"
|
|
})
|
|
]);
|
|
const spinnerText = data.text ? h("p", { class: ns.b("text") }, [data.text]) : void 0;
|
|
return h(Transition, {
|
|
name: ns.b("fade"),
|
|
onAfterLeave: handleAfterLeave
|
|
}, {
|
|
default: withCtx(() => [
|
|
withDirectives(createVNode("div", {
|
|
style: {
|
|
backgroundColor: data.background || ""
|
|
},
|
|
class: [
|
|
ns.b("mask"),
|
|
data.customClass,
|
|
data.fullscreen ? "is-fullscreen" : ""
|
|
]
|
|
}, [
|
|
h("div", {
|
|
class: ns.b("spinner")
|
|
}, [spinner, spinnerText])
|
|
]), [[vShow, data.visible]])
|
|
])
|
|
});
|
|
};
|
|
}
|
|
});
|
|
const loadingInstance = createApp(elLoadingComponent);
|
|
const vm = loadingInstance.mount(document.createElement("div"));
|
|
return {
|
|
...toRefs(data),
|
|
setText,
|
|
removeElLoadingChild,
|
|
close,
|
|
handleAfterLeave,
|
|
vm,
|
|
get $el() {
|
|
return vm.$el;
|
|
}
|
|
};
|
|
}
|
|
let fullscreenInstance = void 0;
|
|
const Loading = function(options = {}) {
|
|
if (!isClient)
|
|
return void 0;
|
|
const resolved = resolveOptions(options);
|
|
if (resolved.fullscreen && fullscreenInstance) {
|
|
return fullscreenInstance;
|
|
}
|
|
const instance = createLoadingComponent({
|
|
...resolved,
|
|
closed: () => {
|
|
var _a;
|
|
(_a = resolved.closed) == null ? void 0 : _a.call(resolved);
|
|
if (resolved.fullscreen)
|
|
fullscreenInstance = void 0;
|
|
}
|
|
});
|
|
addStyle(resolved, resolved.parent, instance);
|
|
addClassList(resolved, resolved.parent, instance);
|
|
resolved.parent.vLoadingAddClassList = () => addClassList(resolved, resolved.parent, instance);
|
|
let loadingNumber = resolved.parent.getAttribute("loading-number");
|
|
if (!loadingNumber) {
|
|
loadingNumber = "1";
|
|
} else {
|
|
loadingNumber = `${Number.parseInt(loadingNumber) + 1}`;
|
|
}
|
|
resolved.parent.setAttribute("loading-number", loadingNumber);
|
|
resolved.parent.appendChild(instance.$el);
|
|
nextTick(() => instance.visible.value = resolved.visible);
|
|
if (resolved.fullscreen) {
|
|
fullscreenInstance = instance;
|
|
}
|
|
return instance;
|
|
};
|
|
const resolveOptions = (options) => {
|
|
var _a, _b, _c, _d;
|
|
let target;
|
|
if (isString(options.target)) {
|
|
target = (_a = document.querySelector(options.target)) != null ? _a : document.body;
|
|
} else {
|
|
target = options.target || document.body;
|
|
}
|
|
return {
|
|
parent: target === document.body || options.body ? document.body : target,
|
|
background: options.background || "",
|
|
svg: options.svg || "",
|
|
svgViewBox: options.svgViewBox || "",
|
|
spinner: options.spinner || false,
|
|
text: options.text || "",
|
|
fullscreen: target === document.body && ((_b = options.fullscreen) != null ? _b : true),
|
|
lock: (_c = options.lock) != null ? _c : false,
|
|
customClass: options.customClass || "",
|
|
visible: (_d = options.visible) != null ? _d : true,
|
|
target
|
|
};
|
|
};
|
|
const addStyle = async (options, parent, instance) => {
|
|
const { nextZIndex } = instance.vm.zIndex || instance.vm._.exposed.zIndex;
|
|
const maskStyle = {};
|
|
if (options.fullscreen) {
|
|
instance.originalPosition.value = getStyle(document.body, "position");
|
|
instance.originalOverflow.value = getStyle(document.body, "overflow");
|
|
maskStyle.zIndex = nextZIndex();
|
|
} else if (options.parent === document.body) {
|
|
instance.originalPosition.value = getStyle(document.body, "position");
|
|
await nextTick();
|
|
for (const property of ["top", "left"]) {
|
|
const scroll = property === "top" ? "scrollTop" : "scrollLeft";
|
|
maskStyle[property] = `${options.target.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] - Number.parseInt(getStyle(document.body, `margin-${property}`), 10)}px`;
|
|
}
|
|
for (const property of ["height", "width"]) {
|
|
maskStyle[property] = `${options.target.getBoundingClientRect()[property]}px`;
|
|
}
|
|
} else {
|
|
instance.originalPosition.value = getStyle(parent, "position");
|
|
}
|
|
for (const [key, value] of Object.entries(maskStyle)) {
|
|
instance.$el.style[key] = value;
|
|
}
|
|
};
|
|
const addClassList = (options, parent, instance) => {
|
|
const ns = instance.vm.ns || instance.vm._.exposed.ns;
|
|
if (!["absolute", "fixed", "sticky"].includes(instance.originalPosition.value)) {
|
|
addClass(parent, ns.bm("parent", "relative"));
|
|
} else {
|
|
removeClass(parent, ns.bm("parent", "relative"));
|
|
}
|
|
if (options.fullscreen && options.lock) {
|
|
addClass(parent, ns.bm("parent", "hidden"));
|
|
} else {
|
|
removeClass(parent, ns.bm("parent", "hidden"));
|
|
}
|
|
};
|
|
const INSTANCE_KEY = Symbol("ElLoading");
|
|
const createInstance = (el, binding) => {
|
|
var _a, _b, _c, _d;
|
|
const vm = binding.instance;
|
|
const getBindingProp = (key) => isObject(binding.value) ? binding.value[key] : void 0;
|
|
const resolveExpression = (key) => {
|
|
const data = isString(key) && (vm == null ? void 0 : vm[key]) || key;
|
|
if (data)
|
|
return ref(data);
|
|
else
|
|
return data;
|
|
};
|
|
const getProp = (name) => resolveExpression(getBindingProp(name) || el.getAttribute(`element-loading-${hyphenate(name)}`));
|
|
const fullscreen = (_a = getBindingProp("fullscreen")) != null ? _a : binding.modifiers.fullscreen;
|
|
const options = {
|
|
text: getProp("text"),
|
|
svg: getProp("svg"),
|
|
svgViewBox: getProp("svgViewBox"),
|
|
spinner: getProp("spinner"),
|
|
background: getProp("background"),
|
|
customClass: getProp("customClass"),
|
|
fullscreen,
|
|
target: (_b = getBindingProp("target")) != null ? _b : fullscreen ? void 0 : el,
|
|
body: (_c = getBindingProp("body")) != null ? _c : binding.modifiers.body,
|
|
lock: (_d = getBindingProp("lock")) != null ? _d : binding.modifiers.lock
|
|
};
|
|
el[INSTANCE_KEY] = {
|
|
options,
|
|
instance: Loading(options)
|
|
};
|
|
};
|
|
const updateOptions = (newOptions, originalOptions) => {
|
|
for (const key of Object.keys(originalOptions)) {
|
|
if (isRef(originalOptions[key]))
|
|
originalOptions[key].value = newOptions[key];
|
|
}
|
|
};
|
|
const vLoading = {
|
|
mounted(el, binding) {
|
|
if (binding.value) {
|
|
createInstance(el, binding);
|
|
}
|
|
},
|
|
updated(el, binding) {
|
|
const instance = el[INSTANCE_KEY];
|
|
if (binding.oldValue !== binding.value) {
|
|
if (binding.value && !binding.oldValue) {
|
|
createInstance(el, binding);
|
|
} else if (binding.value && binding.oldValue) {
|
|
if (isObject(binding.value))
|
|
updateOptions(binding.value, instance.options);
|
|
} else {
|
|
instance == null ? void 0 : instance.instance.close();
|
|
}
|
|
}
|
|
},
|
|
unmounted(el) {
|
|
var _a;
|
|
(_a = el[INSTANCE_KEY]) == null ? void 0 : _a.instance.close();
|
|
}
|
|
};
|
|
const messageTypes = ["success", "info", "warning", "error"];
|
|
const messageDefaults = mutable({
|
|
customClass: "",
|
|
center: false,
|
|
dangerouslyUseHTMLString: false,
|
|
duration: 3e3,
|
|
icon: void 0,
|
|
id: "",
|
|
message: "",
|
|
onClose: void 0,
|
|
showClose: false,
|
|
type: "info",
|
|
offset: 16,
|
|
zIndex: 0,
|
|
grouping: false,
|
|
repeatNum: 1,
|
|
appendTo: isClient ? document.body : void 0
|
|
});
|
|
const messageProps = buildProps({
|
|
customClass: {
|
|
type: String,
|
|
default: messageDefaults.customClass
|
|
},
|
|
center: {
|
|
type: Boolean,
|
|
default: messageDefaults.center
|
|
},
|
|
dangerouslyUseHTMLString: {
|
|
type: Boolean,
|
|
default: messageDefaults.dangerouslyUseHTMLString
|
|
},
|
|
duration: {
|
|
type: Number,
|
|
default: messageDefaults.duration
|
|
},
|
|
icon: {
|
|
type: iconPropType,
|
|
default: messageDefaults.icon
|
|
},
|
|
id: {
|
|
type: String,
|
|
default: messageDefaults.id
|
|
},
|
|
message: {
|
|
type: definePropType([
|
|
String,
|
|
Object,
|
|
Function
|
|
]),
|
|
default: messageDefaults.message
|
|
},
|
|
onClose: {
|
|
type: definePropType(Function),
|
|
required: false
|
|
},
|
|
showClose: {
|
|
type: Boolean,
|
|
default: messageDefaults.showClose
|
|
},
|
|
type: {
|
|
type: String,
|
|
values: messageTypes,
|
|
default: messageDefaults.type
|
|
},
|
|
offset: {
|
|
type: Number,
|
|
default: messageDefaults.offset
|
|
},
|
|
zIndex: {
|
|
type: Number,
|
|
default: messageDefaults.zIndex
|
|
},
|
|
grouping: {
|
|
type: Boolean,
|
|
default: messageDefaults.grouping
|
|
},
|
|
repeatNum: {
|
|
type: Number,
|
|
default: messageDefaults.repeatNum
|
|
}
|
|
});
|
|
const messageEmits = {
|
|
destroy: () => true
|
|
};
|
|
const instances = shallowReactive([]);
|
|
const getInstance = (id) => {
|
|
const idx = instances.findIndex((instance) => instance.id === id);
|
|
const current = instances[idx];
|
|
let prev;
|
|
if (idx > 0) {
|
|
prev = instances[idx - 1];
|
|
}
|
|
return { current, prev };
|
|
};
|
|
const getLastOffset = (id) => {
|
|
const { prev } = getInstance(id);
|
|
if (!prev)
|
|
return 0;
|
|
return prev.vm.exposed.bottom.value;
|
|
};
|
|
const getOffsetOrSpace = (id, offset) => {
|
|
const idx = instances.findIndex((instance) => instance.id === id);
|
|
return idx > 0 ? 20 : offset;
|
|
};
|
|
const _hoisted_1 = ["id"];
|
|
const _hoisted_2 = ["innerHTML"];
|
|
const __default__ = defineComponent({
|
|
name: "ElMessage"
|
|
});
|
|
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
...__default__,
|
|
props: messageProps,
|
|
emits: messageEmits,
|
|
setup(__props, { expose }) {
|
|
const props = __props;
|
|
const { Close } = TypeComponents;
|
|
const { ns, zIndex } = useGlobalComponentSettings("message");
|
|
const { currentZIndex, nextZIndex } = zIndex;
|
|
const messageRef = ref();
|
|
const visible = ref(false);
|
|
const height = ref(0);
|
|
let stopTimer = void 0;
|
|
const badgeType = computed(() => props.type ? props.type === "error" ? "danger" : props.type : "info");
|
|
const typeClass = computed(() => {
|
|
const type = props.type;
|
|
return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] };
|
|
});
|
|
const iconComponent = computed(() => props.icon || TypeComponentsMap[props.type] || "");
|
|
const lastOffset = computed(() => getLastOffset(props.id));
|
|
const offset = computed(() => getOffsetOrSpace(props.id, props.offset) + lastOffset.value);
|
|
const bottom = computed(() => height.value + offset.value);
|
|
const customStyle = computed(() => ({
|
|
top: `${offset.value}px`,
|
|
zIndex: currentZIndex.value
|
|
}));
|
|
function startTimer() {
|
|
if (props.duration === 0)
|
|
return;
|
|
({ stop: stopTimer } = useTimeoutFn(() => {
|
|
close();
|
|
}, props.duration));
|
|
}
|
|
function clearTimer() {
|
|
stopTimer == null ? void 0 : stopTimer();
|
|
}
|
|
function close() {
|
|
visible.value = false;
|
|
}
|
|
function keydown({ code }) {
|
|
if (code === EVENT_CODE.esc) {
|
|
close();
|
|
}
|
|
}
|
|
watch(() => props.repeatNum, () => {
|
|
clearTimer();
|
|
startTimer();
|
|
});
|
|
useEventListener(document, "keydown", keydown);
|
|
useResizeObserver(messageRef, () => {
|
|
height.value = messageRef.value.getBoundingClientRect().height;
|
|
});
|
|
expose({
|
|
visible,
|
|
bottom,
|
|
close
|
|
});
|
|
return (_ctx, _cache) => {
|
|
return openBlock(), createBlock(Transition, {
|
|
name: unref(ns).b("fade"),
|
|
onBeforeLeave: _ctx.onClose,
|
|
onAfterLeave: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("destroy")),
|
|
persisted: ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
withDirectives(createElementVNode("div", {
|
|
id: _ctx.id,
|
|
ref_key: "messageRef",
|
|
ref: messageRef,
|
|
class: normalizeClass([
|
|
unref(ns).b(),
|
|
{ [unref(ns).m(_ctx.type)]: _ctx.type && !_ctx.icon },
|
|
unref(ns).is("center", _ctx.center),
|
|
unref(ns).is("closable", _ctx.showClose),
|
|
_ctx.customClass
|
|
]),
|
|
style: normalizeStyle(unref(customStyle)),
|
|
role: "alert",
|
|
onMouseenter: clearTimer,
|
|
onMouseleave: startTimer
|
|
}, [
|
|
_ctx.repeatNum > 1 ? (openBlock(), createBlock(unref(ElBadge), {
|
|
key: 0,
|
|
value: _ctx.repeatNum,
|
|
type: unref(badgeType),
|
|
class: normalizeClass(unref(ns).e("badge"))
|
|
}, null, 8, ["value", "type", "class"])) : createCommentVNode("v-if", true),
|
|
unref(iconComponent) ? (openBlock(), createBlock(unref(ElIcon), {
|
|
key: 1,
|
|
class: normalizeClass([unref(ns).e("icon"), unref(typeClass)])
|
|
}, {
|
|
default: withCtx(() => [
|
|
(openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent))))
|
|
]),
|
|
_: 1
|
|
}, 8, ["class"])) : createCommentVNode("v-if", true),
|
|
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
!_ctx.dangerouslyUseHTMLString ? (openBlock(), createElementBlock("p", {
|
|
key: 0,
|
|
class: normalizeClass(unref(ns).e("content"))
|
|
}, toDisplayString(_ctx.message), 3)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
|
|
createElementVNode("p", {
|
|
class: normalizeClass(unref(ns).e("content")),
|
|
innerHTML: _ctx.message
|
|
}, null, 10, _hoisted_2)
|
|
], 2112))
|
|
]),
|
|
_ctx.showClose ? (openBlock(), createBlock(unref(ElIcon), {
|
|
key: 2,
|
|
class: normalizeClass(unref(ns).e("closeBtn")),
|
|
onClick: withModifiers(close, ["stop"])
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode(unref(Close))
|
|
]),
|
|
_: 1
|
|
}, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
|
|
], 46, _hoisted_1), [
|
|
[vShow, visible.value]
|
|
])
|
|
]),
|
|
_: 3
|
|
}, 8, ["name", "onBeforeLeave"]);
|
|
};
|
|
}
|
|
});
|
|
var MessageConstructor = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);
|
|
let seed = 1;
|
|
const normalizeOptions = (params) => {
|
|
const options = !params || isString(params) || isVNode(params) || isFunction(params) ? { message: params } : params;
|
|
const normalized = {
|
|
...messageDefaults,
|
|
...options
|
|
};
|
|
if (!normalized.appendTo) {
|
|
normalized.appendTo = document.body;
|
|
} else if (isString(normalized.appendTo)) {
|
|
let appendTo = document.querySelector(normalized.appendTo);
|
|
if (!isElement(appendTo)) {
|
|
appendTo = document.body;
|
|
}
|
|
normalized.appendTo = appendTo;
|
|
}
|
|
return normalized;
|
|
};
|
|
const closeMessage = (instance) => {
|
|
const idx = instances.indexOf(instance);
|
|
if (idx === -1)
|
|
return;
|
|
instances.splice(idx, 1);
|
|
const { handler } = instance;
|
|
handler.close();
|
|
};
|
|
const createMessage = ({ appendTo, ...options }, context) => {
|
|
const id = `message_${seed++}`;
|
|
const userOnClose = options.onClose;
|
|
const container = document.createElement("div");
|
|
const props = {
|
|
...options,
|
|
id,
|
|
onClose: () => {
|
|
userOnClose == null ? void 0 : userOnClose();
|
|
closeMessage(instance);
|
|
},
|
|
onDestroy: () => {
|
|
render(null, container);
|
|
}
|
|
};
|
|
const vnode = createVNode(MessageConstructor, props, isFunction(props.message) || isVNode(props.message) ? {
|
|
default: isFunction(props.message) ? props.message : () => props.message
|
|
} : null);
|
|
vnode.appContext = context || message._context;
|
|
render(vnode, container);
|
|
appendTo.appendChild(container.firstElementChild);
|
|
const vm = vnode.component;
|
|
const handler = {
|
|
close: () => {
|
|
vm.exposed.visible.value = false;
|
|
}
|
|
};
|
|
const instance = {
|
|
id,
|
|
vnode,
|
|
vm,
|
|
handler,
|
|
props: vnode.component.props
|
|
};
|
|
return instance;
|
|
};
|
|
const message = (options = {}, context) => {
|
|
if (!isClient)
|
|
return { close: () => void 0 };
|
|
if (isNumber(messageConfig.max) && instances.length >= messageConfig.max) {
|
|
return { close: () => void 0 };
|
|
}
|
|
const normalized = normalizeOptions(options);
|
|
if (normalized.grouping && instances.length) {
|
|
const instance2 = instances.find(({ vnode: vm }) => {
|
|
var _a;
|
|
return ((_a = vm.props) == null ? void 0 : _a.message) === normalized.message;
|
|
});
|
|
if (instance2) {
|
|
instance2.props.repeatNum += 1;
|
|
instance2.props.type = normalized.type;
|
|
return instance2.handler;
|
|
}
|
|
}
|
|
const instance = createMessage(normalized, context);
|
|
instances.push(instance);
|
|
return instance.handler;
|
|
};
|
|
messageTypes.forEach((type) => {
|
|
message[type] = (options = {}, appContext) => {
|
|
const normalized = normalizeOptions(options);
|
|
return message({ ...normalized, type }, appContext);
|
|
};
|
|
});
|
|
function closeAll(type) {
|
|
for (const instance of instances) {
|
|
if (!type || type === instance.props.type) {
|
|
instance.handler.close();
|
|
}
|
|
}
|
|
}
|
|
message.closeAll = closeAll;
|
|
message._context = null;
|
|
const ElMessage = withInstallFunction(message, "$message");
|
|
const _imports_0$1 = "" + buildAssetsURL("dot-yellow.4b5e135b.svg");
|
|
const _imports_1$2 = "" + buildAssetsURL("dot-gray.86cdd7b5.svg");
|
|
const _imports_2$2 = "" + buildAssetsURL("empty-icon.24a01ae2.svg");
|
|
const _sfc_main$2 = {
|
|
__name: "Empty",
|
|
__ssrInlineRender: true,
|
|
props: {
|
|
hint: String
|
|
},
|
|
setup(__props) {
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "empty-box-list flexcenter" }, _attrs))} data-v-6c7355f5><div class="dot-list flexacenter" data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-6c7355f5><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-6c7355f5></div><img class="empty-icon"${ssrRenderAttr("src", _imports_2$2)} data-v-6c7355f5><div class="empty-hint" data-v-6c7355f5>${ssrInterpolate(__props.hint || "\u6682\u65E0\u5185\u5BB9")}</div></div>`);
|
|
};
|
|
}
|
|
};
|
|
const _sfc_setup$2 = _sfc_main$2.setup;
|
|
_sfc_main$2.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Empty.vue");
|
|
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
|
|
};
|
|
const __nuxt_component_4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__scopeId", "data-v-6c7355f5"]]);
|
|
const handleDate = (dateTimeStamp = /* @__PURE__ */ new Date()) => {
|
|
dateTimeStamp = dateTimeStamp ? dateTimeStamp : null;
|
|
var timestamp = new Date(dateTimeStamp);
|
|
timestamp = timestamp.getTime();
|
|
var minute = 1e3 * 60;
|
|
var hour = minute * 60;
|
|
var day = hour * 24;
|
|
var now = (/* @__PURE__ */ new Date()).getTime();
|
|
var diffValue = now - timestamp;
|
|
var result;
|
|
if (diffValue < 0)
|
|
return;
|
|
var dayC = diffValue / day;
|
|
var hourC = diffValue / (hour + 1);
|
|
var minC = diffValue / minute;
|
|
if (dayC >= 7) {
|
|
let date = new Date(timestamp);
|
|
let Y = date.getFullYear() + "-";
|
|
let M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
|
|
let D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
|
|
result = "" + Y + M + D;
|
|
} else if (dayC >= 1)
|
|
result = "" + Math.round(dayC) + "\u5929\u524D";
|
|
else if (hourC >= 1)
|
|
result = "" + Math.round(hourC) + "\u5C0F\u65F6\u524D";
|
|
else if (minC >= 1)
|
|
result = "" + Math.round(minC) + "\u5206\u949F\u524D";
|
|
else
|
|
result = "\u521A\u521A";
|
|
return result;
|
|
};
|
|
const goToURL = (url, isblank = true) => {
|
|
return;
|
|
};
|
|
const numberToEnclosed = (index) => {
|
|
let obj = {
|
|
1: "\u2460",
|
|
2: "\u2461",
|
|
3: "\u2462",
|
|
4: "\u2463",
|
|
5: "\u2464"
|
|
};
|
|
return obj[index];
|
|
};
|
|
const _imports_1$1 = "" + buildAssetsURL("delete-icon.a2ab9c64.svg");
|
|
const _imports_2$1 = "" + buildAssetsURL("arrow-gray.271dd0d3.svg");
|
|
const _imports_3 = "" + buildAssetsURL("tick-green.2df56f28.svg");
|
|
const _sfc_main$1 = {
|
|
__name: "MyPopup",
|
|
__ssrInlineRender: true,
|
|
setup(__props, { expose: __expose }) {
|
|
let count = inject("count");
|
|
let show = ref(false);
|
|
useRouter();
|
|
const route = useRoute();
|
|
let MyPopupState = ref("");
|
|
let showList = ref([]);
|
|
let collectList = [];
|
|
let collectPage = 1;
|
|
let collectLoading = ref(false);
|
|
let collectCount = ref(0);
|
|
const getCollect = () => {
|
|
if (collectPage == 0 || collectLoading.value)
|
|
return;
|
|
collectLoading.value = true;
|
|
MyUserCollectHttp({ page: collectPage }).then((res) => {
|
|
if (res.code != 200)
|
|
return;
|
|
let data = res.data;
|
|
collectList = collectList.concat(data.data);
|
|
showList.value = collectList;
|
|
if (collectList.length < data["count"])
|
|
collectPage++;
|
|
else
|
|
collectPage = 0;
|
|
collectCount.value = data["count"];
|
|
}).finally(() => collectLoading.value = false);
|
|
};
|
|
let publishList = [];
|
|
let publisPage = 1;
|
|
let publisloading = ref(false);
|
|
const getPublish = () => {
|
|
if (publisPage == 0 && !publisloading.value)
|
|
return;
|
|
publisloading.value = true;
|
|
MyUserPublishHttp({ limit: 4, page: publisPage }).then((res) => {
|
|
if (res.code != 200)
|
|
return;
|
|
let data = res.data;
|
|
publishList = publishList.concat(data.data);
|
|
if (publishList.length < data["count"])
|
|
publisPage++;
|
|
else
|
|
publisPage = 0;
|
|
showList.value = publishList;
|
|
}).finally(() => publisloading.value = false);
|
|
};
|
|
const cutMy = (key, isEmpty) => {
|
|
if (isEmpty) {
|
|
collectList = [];
|
|
collectPage = 1;
|
|
collectCount.value = 0;
|
|
}
|
|
if (key == "collect" && collectList.length == 0)
|
|
getCollect();
|
|
else if (key == "mj" && publishList.length == 0)
|
|
getPublish();
|
|
if (key == "collect")
|
|
showList.value = collectList;
|
|
else if (key == "mj")
|
|
showList.value = publishList;
|
|
MyPopupState.value = key;
|
|
if (MyPopupState.value)
|
|
show.value = true;
|
|
};
|
|
const openAnonymousState = (index) => {
|
|
publishList.forEach((element) => {
|
|
element["anonymousState"] = false;
|
|
});
|
|
publishList[index]["anonymousState"] = true;
|
|
showList.value = [...publishList];
|
|
};
|
|
const closeAllAnonymousState = () => {
|
|
publishList.forEach((element) => {
|
|
element["anonymousState"] = false;
|
|
});
|
|
showList.value = [...publishList];
|
|
};
|
|
const handleAnonymousState = (token, index, anonymous) => {
|
|
changeAnonymousHttp({ token, anonymous }).then((res) => {
|
|
if (res.code != 200)
|
|
return;
|
|
publishList[index]["anonymous"] = anonymous;
|
|
showList.value = [...publishList];
|
|
closeAllAnonymousState();
|
|
ElMessage.success(res.message);
|
|
});
|
|
};
|
|
const handleListScroll = (e) => {
|
|
const el = e.target;
|
|
if (el.scrollHeight - el.scrollTop !== el.clientHeight)
|
|
return;
|
|
if (MyPopupState.value == "collect")
|
|
getCollect();
|
|
if (MyPopupState.value == "mj")
|
|
getPublish();
|
|
};
|
|
let clearAllData = inject("clearAllData") || null;
|
|
let getDetails = inject("getDetails") || null;
|
|
const goDetails = (uniqid) => {
|
|
let path = route["path"] || "";
|
|
if (path.indexOf("/details/") != -1) {
|
|
clearAllData();
|
|
nextTick(() => getDetails());
|
|
}
|
|
show.value = false;
|
|
MyPopupState.value = "";
|
|
};
|
|
__expose({
|
|
cutMy
|
|
});
|
|
const closeDialog = () => {
|
|
show.value = false;
|
|
};
|
|
const cancelCollection = (token, index) => {
|
|
MyUserDeleteCollectHttp({ token }).then((res) => {
|
|
if (res.code != 200) {
|
|
ElMessage.error(res.message);
|
|
return;
|
|
}
|
|
collectList.splice(index, 1);
|
|
showList.value = [...collectList];
|
|
count.value.collect--;
|
|
collectCount.value--;
|
|
});
|
|
};
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_el_dialog = ElDialog;
|
|
const _component_Empty = __nuxt_component_4;
|
|
const _directive_loading = vLoading;
|
|
_push(ssrRenderComponent(_component_el_dialog, mergeProps({
|
|
modelValue: unref(show),
|
|
"onUpdate:modelValue": ($event) => isRef(show) ? show.value = $event : show = $event,
|
|
width: "750px",
|
|
"align-center": "",
|
|
class: "dialog-box"
|
|
}, _attrs), {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`<div class="box flexflex" data-v-788704a8${_scopeId}><img class="cross"${ssrRenderAttr("src", _imports_1$3)} alt data-v-788704a8${_scopeId}><div class="tba-list flexcenter" data-v-788704a8${_scopeId}><div class="${ssrRenderClass([{ pitch: unref(MyPopupState) == "collect" }, "tab-item flexcenter"])}" data-v-788704a8${_scopeId}> \u6211\u7684\u6536\u85CF <div class="value" data-v-788704a8${_scopeId}>${ssrInterpolate(unref(collectCount) > 0 ? unref(collectCount) : unref(count)["collect"])}</div></div><div class="${ssrRenderClass([{ pitch: unref(MyPopupState) == "mj" }, "tab-item flexcenter"])}" data-v-788704a8${_scopeId}> \u6211\u7684\u9762\u7ECF <div class="value" data-v-788704a8${_scopeId}>${ssrInterpolate(unref(count)["publish"])}</div></div></div>`);
|
|
if (unref(MyPopupState) == "collect" && unref(collectLoading) || unref(MyPopupState) == "mj" && unref(publisloading)) {
|
|
_push2(`<div${ssrRenderAttrs(mergeProps({ class: "empty-box flexcenter" }, ssrGetDirectiveProps(_ctx, _directive_loading, true)))} data-v-788704a8${_scopeId}></div>`);
|
|
} else if (unref(showList).length == 0) {
|
|
_push2(`<div class="empty-box flexcenter" data-v-788704a8${_scopeId}>`);
|
|
_push2(ssrRenderComponent(_component_Empty, null, null, _parent2, _scopeId));
|
|
_push2(`</div>`);
|
|
} else {
|
|
_push2(`<div class="content" data-v-788704a8${_scopeId}><!--[-->`);
|
|
ssrRenderList(unref(showList), (item, index) => {
|
|
var _a, _b, _c;
|
|
_push2(`<div class="item flexflex" data-v-788704a8${_scopeId}><div class="left flexflex" data-v-788704a8${_scopeId}><div class="name" data-v-788704a8${_scopeId}>${ssrInterpolate(item["school"] || item["data"]["school"])}</div><div class="info-box flexflex" data-v-788704a8${_scopeId}>`);
|
|
if (item["profession"] || ((_a = item == null ? void 0 : item["data"]) == null ? void 0 : _a["profession"])) {
|
|
_push2(`<div class="info-item flexacenter" data-v-788704a8${_scopeId}><div class="info-item-name" data-v-788704a8${_scopeId}>\u4E13\u4E1A</div><div class="info-item-value" data-v-788704a8${_scopeId}>${ssrInterpolate(item["profession"] || item["data"]["profession"])}</div></div>`);
|
|
} else {
|
|
_push2(`<!---->`);
|
|
}
|
|
if (item["project"] || ((_b = item == null ? void 0 : item.data) == null ? void 0 : _b.project)) {
|
|
_push2(`<div class="info-item flexacenter" data-v-788704a8${_scopeId}><div class="info-item-name" data-v-788704a8${_scopeId}>\u9879\u76EE</div><div class="info-item-value" data-v-788704a8${_scopeId}>${ssrInterpolate(item["project"] || ((_c = item == null ? void 0 : item.data) == null ? void 0 : _c.project))}</div></div>`);
|
|
} else {
|
|
_push2(`<!---->`);
|
|
}
|
|
_push2(`</div><div class="text-box flexacenter" data-v-788704a8${_scopeId}>`);
|
|
if (item == null ? void 0 : item.releasetime) {
|
|
_push2(`<div class="text-time" data-v-788704a8${_scopeId}>${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item == null ? void 0 : item.releasetime))}\u53D1\u5E03</div>`);
|
|
} else {
|
|
_push2(`<!---->`);
|
|
}
|
|
_push2(`<div class="text-message flex1 ellipsis" data-v-788704a8${_scopeId}>${ssrInterpolate(item["message"] || item["data"]["message"])}</div></div></div><div class="operate-area flexacenter" data-v-788704a8${_scopeId}>`);
|
|
if (unref(MyPopupState) == "collect") {
|
|
_push2(`<img class="delete-icon"${ssrRenderAttr("src", _imports_1$1)} data-v-788704a8${_scopeId}>`);
|
|
} else {
|
|
_push2(`<div class="anonymous-box flexacenter" data-v-788704a8${_scopeId}><div class="text" data-v-788704a8${_scopeId}>${ssrInterpolate(item["anonymous"] == 1 ? "\u533F\u540D" : "\u516C\u5F00")}</div><img class="arrow-icon"${ssrRenderAttr("src", _imports_2$1)} data-v-788704a8${_scopeId}>`);
|
|
if (item["anonymousState"]) {
|
|
_push2(`<div class="state-popup flexflex" data-v-788704a8${_scopeId}><div class="${ssrRenderClass([{ "pitch": item["anonymous"] == 0 }, "state-popup-item flexacenter flex1"])}" data-v-788704a8${_scopeId}><div class data-v-788704a8${_scopeId}>\u516C\u5F00\u53D1\u8868</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_3)} data-v-788704a8${_scopeId}></div><div class="${ssrRenderClass([{ "pitch": item["anonymous"] == 1 }, "state-popup-item flexacenter flex1"])}" data-v-788704a8${_scopeId}><div class data-v-788704a8${_scopeId}>\u533F\u540D\u53D1\u8868</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_3)} data-v-788704a8${_scopeId}></div></div>`);
|
|
} else {
|
|
_push2(`<!---->`);
|
|
}
|
|
_push2(`</div>`);
|
|
}
|
|
_push2(`</div></div>`);
|
|
});
|
|
_push2(`<!--]--></div>`);
|
|
}
|
|
_push2(`</div>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", { class: "box flexflex" }, [
|
|
createVNode("img", {
|
|
class: "cross",
|
|
src: _imports_1$3,
|
|
alt: "",
|
|
onClick: ($event) => closeDialog()
|
|
}, null, 8, ["onClick"]),
|
|
createVNode("div", { class: "tba-list flexcenter" }, [
|
|
createVNode("div", {
|
|
class: ["tab-item flexcenter", { pitch: unref(MyPopupState) == "collect" }],
|
|
onClick: ($event) => cutMy("collect")
|
|
}, [
|
|
createTextVNode(" \u6211\u7684\u6536\u85CF "),
|
|
createVNode("div", { class: "value" }, toDisplayString(unref(collectCount) > 0 ? unref(collectCount) : unref(count)["collect"]), 1)
|
|
], 10, ["onClick"]),
|
|
createVNode("div", {
|
|
class: ["tab-item flexcenter", { pitch: unref(MyPopupState) == "mj" }],
|
|
onClick: ($event) => cutMy("mj")
|
|
}, [
|
|
createTextVNode(" \u6211\u7684\u9762\u7ECF "),
|
|
createVNode("div", { class: "value" }, toDisplayString(unref(count)["publish"]), 1)
|
|
], 10, ["onClick"])
|
|
]),
|
|
unref(MyPopupState) == "collect" && unref(collectLoading) || unref(MyPopupState) == "mj" && unref(publisloading) ? withDirectives((openBlock(), createBlock("div", {
|
|
key: 0,
|
|
class: "empty-box flexcenter"
|
|
}, null, 512)), [
|
|
[_directive_loading, true]
|
|
]) : unref(showList).length == 0 ? (openBlock(), createBlock("div", {
|
|
key: 1,
|
|
class: "empty-box flexcenter"
|
|
}, [
|
|
createVNode(_component_Empty)
|
|
])) : (openBlock(), createBlock("div", {
|
|
key: 2,
|
|
class: "content",
|
|
onScroll: handleListScroll
|
|
}, [
|
|
(openBlock(true), createBlock(Fragment, null, renderList(unref(showList), (item, index) => {
|
|
var _a, _b, _c;
|
|
return openBlock(), createBlock("div", {
|
|
class: "item flexflex",
|
|
key: index,
|
|
onClick: ($event) => {
|
|
var _a2;
|
|
return goDetails(item["uniqid"] || ((_a2 = item == null ? void 0 : item.data) == null ? void 0 : _a2.uniqid));
|
|
}
|
|
}, [
|
|
createVNode("div", { class: "left flexflex" }, [
|
|
createVNode("div", { class: "name" }, toDisplayString(item["school"] || item["data"]["school"]), 1),
|
|
createVNode("div", { class: "info-box flexflex" }, [
|
|
item["profession"] || ((_a = item == null ? void 0 : item["data"]) == null ? void 0 : _a["profession"]) ? (openBlock(), createBlock("div", {
|
|
key: 0,
|
|
class: "info-item flexacenter"
|
|
}, [
|
|
createVNode("div", { class: "info-item-name" }, "\u4E13\u4E1A"),
|
|
createVNode("div", { class: "info-item-value" }, toDisplayString(item["profession"] || item["data"]["profession"]), 1)
|
|
])) : createCommentVNode("", true),
|
|
item["project"] || ((_b = item == null ? void 0 : item.data) == null ? void 0 : _b.project) ? (openBlock(), createBlock("div", {
|
|
key: 1,
|
|
class: "info-item flexacenter"
|
|
}, [
|
|
createVNode("div", { class: "info-item-name" }, "\u9879\u76EE"),
|
|
createVNode("div", { class: "info-item-value" }, toDisplayString(item["project"] || ((_c = item == null ? void 0 : item.data) == null ? void 0 : _c.project)), 1)
|
|
])) : createCommentVNode("", true)
|
|
]),
|
|
createVNode("div", { class: "text-box flexacenter" }, [
|
|
(item == null ? void 0 : item.releasetime) ? (openBlock(), createBlock("div", {
|
|
key: 0,
|
|
class: "text-time"
|
|
}, toDisplayString(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item == null ? void 0 : item.releasetime)) + "\u53D1\u5E03", 1)) : createCommentVNode("", true),
|
|
createVNode("div", { class: "text-message flex1 ellipsis" }, toDisplayString(item["message"] || item["data"]["message"]), 1)
|
|
])
|
|
]),
|
|
createVNode("div", { class: "operate-area flexacenter" }, [
|
|
unref(MyPopupState) == "collect" ? (openBlock(), createBlock("img", {
|
|
key: 0,
|
|
class: "delete-icon",
|
|
onClick: withModifiers(($event) => cancelCollection(item["token"], index), ["stop"]),
|
|
src: _imports_1$1
|
|
}, null, 8, ["onClick"])) : (openBlock(), createBlock("div", {
|
|
key: 1,
|
|
class: "anonymous-box flexacenter",
|
|
onClick: withModifiers(($event) => openAnonymousState(index), ["stop"])
|
|
}, [
|
|
createVNode("div", { class: "text" }, toDisplayString(item["anonymous"] == 1 ? "\u533F\u540D" : "\u516C\u5F00"), 1),
|
|
createVNode("img", {
|
|
class: "arrow-icon",
|
|
src: _imports_2$1
|
|
}),
|
|
item["anonymousState"] ? (openBlock(), createBlock("div", {
|
|
key: 0,
|
|
class: "state-popup flexflex",
|
|
onClick: withModifiers(() => {
|
|
}, ["stop"])
|
|
}, [
|
|
createVNode("div", {
|
|
class: ["state-popup-item flexacenter flex1", { "pitch": item["anonymous"] == 0 }],
|
|
onClick: ($event) => handleAnonymousState(item["token"], index, 0)
|
|
}, [
|
|
createVNode("div", { class: "" }, "\u516C\u5F00\u53D1\u8868"),
|
|
createVNode("img", {
|
|
class: "state-popup-icon",
|
|
src: _imports_3
|
|
})
|
|
], 10, ["onClick"]),
|
|
createVNode("div", {
|
|
class: ["state-popup-item flexacenter flex1", { "pitch": item["anonymous"] == 1 }],
|
|
onClick: ($event) => handleAnonymousState(item["token"], index, 1)
|
|
}, [
|
|
createVNode("div", { class: "" }, "\u533F\u540D\u53D1\u8868"),
|
|
createVNode("img", {
|
|
class: "state-popup-icon",
|
|
src: _imports_3
|
|
})
|
|
], 10, ["onClick"])
|
|
], 8, ["onClick"])) : createCommentVNode("", true)
|
|
], 8, ["onClick"]))
|
|
])
|
|
], 8, ["onClick"]);
|
|
}), 128))
|
|
], 32))
|
|
])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
};
|
|
}
|
|
};
|
|
const _sfc_setup$1 = _sfc_main$1.setup;
|
|
_sfc_main$1.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/MyPopup.vue");
|
|
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
|
|
};
|
|
const __nuxt_component_0 = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__scopeId", "data-v-788704a8"]]);
|
|
const _imports_0 = "" + buildAssetsURL("logo-icon.b6345ffb.png");
|
|
const _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAkBQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03KISwAAAL90Uk5TAA9Ne6PBzN3Qxa2GWxwTbMb82oQnIJH3xA2O+9yfdlNENUFMa5PLtSNA49l5EGHA9m4BUgIzr64MA5nybUXbyhXOJaXWkLMJ/sgLYKoEoir1uwZ/4vEZ/TsR5aFYK130FKCNSyRmdLe2czHwMuw2G/oFXteFVLx4YqZlrKtanIcp2M1cGozz5GMiGPmS6+pDOfidX+nTL+Ys4H25HQp13yYImB/UgEJvsrrVeqhpx2ipLTQHEpfeg+cu7j9PVmTFnY/3AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAASAAAAEgARslrPgAAAxFJREFUWMPtV/k7VVEUPc/QMxQqUppkKGWI50bPEBqfR+QpLw00oEGZSjRKESGlVCTNc5rncf1r7Xsf38cdj9dvfe2f7l37rHXO3Wefs/dl7L9pmsnD08t7itnH189/6rRJswMCg6ZjnM2YGTwZesisUChstgcvfU7YXIkxb/6CheGLIiKjohe7VrMkhou/dJk4ODYuZBwWn7BcBBOTLMZ8T3E2n2RBjq9IESVSVxrQrWk0Kj3DqubLXEW+rGxdvuBFY3JWawVnDXnXBugJrKMR6zfofJ8NyLVr+/OIn79Rb4YoGlGg6S3cBBQ59INUTAoJGj4LbdXmAH0+s6QCW0o0P8C5lRlZ6TZgu6rHSruUZshnbAfNs1PNUQaU7+IQYEHAbjXcF9jDw2d7gdB4JVxhg43vsLBYoFKJVgHefHxxK/cp0f3AAU6BgxQtRbpYqoFDnALCYaBGDtYCdfWcAqwIaJBjEcARXj6LBo7KsUbgGLdAk0rKNQMp3AKBwHE5dgI4yS1QCZySY6dV91bDKGfOyDHKzyxugRYgTI6dBaq5BfyADDnmoGLCXQFbgUwFeA44z8lvs8GZrUDb9W7LiUZXV44SDQcu2PkEKJNblKi1A+jk4l90Amp3mj9VVCuPAFW/XDW8K5FvCcHdQLKqpwe4ZFQWXBHwUa/ypb1UGA0bgCTAdlnD10Blq8qAf6UPuKrpLSD1a7r8in5quEya7jnX6WIr0+HfuEnZMqAzoHaQ1nBL0HJH0s3bl8n0rMJMcRi6reobbqf2AncMgtRFhwrlTcqkFhrvSr1e/z0DhfsPxGG9xQ8noKbOR2MN52CtgQLzkKZy+j5+4mokTDVPnyWKUPpzSeGFYbYNv+wdna28wzxYPfrc3ZMtjEhPucan1v7qtaxTbo0TV+4Ykl6GHIYKjMW8GYmtc5E7/KrGSqHdJfxW4FAgqw95936g5MN46KMrmJ/4BNSs7bOk8MV9hZivkgJvM6Fi376LArZm9xV+SP8zdYXuK/yUfml+uS/A8uhY5XAWAXX7bc6P/xv+P2Z/AEq6ab7rDxu3AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIyLTA4LTE4VDE1OjIwOjM1KzA4OjAwHpcN9AAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMi0wOC0xOFQxNToyMDozNSswODowMG/KtUgAAABJdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX2kyYzV4MjJydTJsL3NvdXN1by5zdmfTYjJrAAAAAElFTkSuQmCC";
|
|
const _imports_2 = "" + buildAssetsURL("add-icon.11ba1b26.svg");
|
|
const _sfc_main = {
|
|
__name: "top-head",
|
|
__ssrInlineRender: true,
|
|
setup(__props, { expose: __expose }) {
|
|
useRouter();
|
|
const route = useRoute$1();
|
|
inject("isNeedLogin");
|
|
inject("goLogin");
|
|
let keyword = ref("");
|
|
let count = ref({});
|
|
provide("count", count);
|
|
watchEffect(() => {
|
|
keyword.value = route.query["keyword"];
|
|
});
|
|
let historicalSearchState = ref(false);
|
|
let historicalSearchList = ref([]);
|
|
let MyPopupRef = ref(null);
|
|
__expose({
|
|
count
|
|
});
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_MyPopup = __nuxt_component_0;
|
|
_push(`<!--[--><section class="header flexacenter" data-v-2783293d><div class="header-box flexacenter" data-v-2783293d><a href="/index.html" data-v-2783293d><img class="logo-icon"${ssrRenderAttr("src", _imports_0)} data-v-2783293d></a><div class="header-right flexacenter" data-v-2783293d><div class="search-box flexacenter" data-v-2783293d><input class="flex1" placeholder="\u8F93\u5165\u641C\u7D22\u5173\u952E\u8BCD"${ssrRenderAttr("value", unref(keyword))} data-v-2783293d><img class="search-icon"${ssrRenderAttr("src", _imports_1)} data-v-2783293d>`);
|
|
if (unref(historicalSearchState)) {
|
|
_push(`<div class="history-box" data-v-2783293d><div class="history-title" data-v-2783293d>\u5386\u53F2\u641C\u7D22</div><div class="history-list" data-v-2783293d><!--[-->`);
|
|
ssrRenderList(unref(historicalSearchList), (item, index) => {
|
|
_push(`<div class="history-item ellipsis" data-v-2783293d>${ssrInterpolate(item)}</div>`);
|
|
});
|
|
_push(`<!--]--></div></div>`);
|
|
} else {
|
|
_push(`<!---->`);
|
|
}
|
|
_push(`</div><div class="my-btn-list flexacenter" data-v-2783293d><div class="my-btn-item flexcenter" data-v-2783293d>\u6211\u7684\u6536\u85CF</div><div class="my-btn-item flexcenter" data-v-2783293d>\u6211\u7684\u9762\u7ECF</div></div><div class="sponsor-btn flexcenter" data-v-2783293d><img class="add-icon"${ssrRenderAttr("src", _imports_2)} data-v-2783293d> \u53D1\u5E03\u9762\u7ECF </div></div></div></section>`);
|
|
_push(ssrRenderComponent(_component_MyPopup, {
|
|
ref_key: "MyPopupRef",
|
|
ref: MyPopupRef,
|
|
count: unref(count)
|
|
}, null, _parent));
|
|
_push(`<!--]-->`);
|
|
};
|
|
}
|
|
};
|
|
const _sfc_setup = _sfc_main.setup;
|
|
_sfc_main.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/top-head.vue");
|
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
};
|
|
const __nuxt_component_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__scopeId", "data-v-2783293d"]]);
|
|
|
|
export { ElMessage as E, __nuxt_component_3 as _, __nuxt_component_4 as a, goToURL as g, handleDate as h, numberToEnclosed as n, vLoading as v };
|
|
//# sourceMappingURL=top-head-41252b2f.mjs.map
|