2099 lines
97 KiB
JavaScript
2099 lines
97 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, renderList, createTextVNode, watchEffect, render, reactive, createApp, toRefs } from 'vue';
|
|
import { b as buildProps, g as isNumber, c as withInstall, d as definePropType, i as iconPropType, u as useLocale, F as FOCUS_TRAP_INJECTION_KEY, E as ElIcon, h as useDeprecated, j as ElFocusTrap, m as mutable, k as useGlobalComponentSettings, T as TypeComponentsMap, l as withInstallFunction, H as Http, _ as _export_sfc, C as CloseComponents, U as UPDATE_MODEL_EVENT, e as isBoolean, n as useZIndex, o as useGlobalConfig, a as addUnit, p as TypeComponents, q as EVENT_CODE, r as hasClass, s as getStyle, t as addClass, v as isElement, x as messageConfig, f as _imports_1$3, y as removeClass, z as ElScrollbar } from './cross-icon-dJgxHXd9.mjs';
|
|
import { d as useNamespace, e as useId, f as defaultNamespace, t as throwError, u as useRouter$1, h as useRoute } from '../server.mjs';
|
|
import { NOOP, isObject, isFunction, isString, hyphenate } from '@vue/shared';
|
|
import { isClient, useEventListener, useResizeObserver, useTimeoutFn } from '@vueuse/core';
|
|
import { isUndefined } from 'lodash-unified';
|
|
import { computed as computed$1 } from '@vue/reactivity';
|
|
import { ssrRenderAttrs, ssrRenderAttr, ssrRenderStyle, ssrInterpolate, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrGetDirectiveProps } from 'vue/server-renderer';
|
|
import { useRouter, useRoute as useRoute$1 } from 'vue-router';
|
|
import { _ as _export_sfc$1 } from './_plugin-vue_export-helper-EqIDKv09.mjs';
|
|
|
|
let scrollBarWidth;
|
|
const getScrollBarWidth = (namespace) => {
|
|
var _a;
|
|
if (!isClient)
|
|
return 0;
|
|
if (scrollBarWidth !== void 0)
|
|
return scrollBarWidth;
|
|
const outer = (void 0).createElement("div");
|
|
outer.className = `${namespace}-scrollbar__wrap`;
|
|
outer.style.visibility = "hidden";
|
|
outer.style.width = "100px";
|
|
outer.style.position = "absolute";
|
|
outer.style.top = "-9999px";
|
|
(void 0).body.appendChild(outer);
|
|
const widthNoScroll = outer.offsetWidth;
|
|
outer.style.overflow = "scroll";
|
|
const inner = (void 0).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((void 0).body, hiddenCls.value)) {
|
|
return;
|
|
}
|
|
let scrollBarWidth2 = 0;
|
|
let withoutHiddenClass = false;
|
|
let bodyWidth = "0";
|
|
const cleanup = () => {
|
|
setTimeout(() => {
|
|
removeClass(void 0, hiddenCls.value);
|
|
if (withoutHiddenClass && void 0) {
|
|
(void 0).body.style.width = bodyWidth;
|
|
}
|
|
}, 200);
|
|
};
|
|
watch(trigger, (val) => {
|
|
if (!val) {
|
|
cleanup();
|
|
return;
|
|
}
|
|
withoutHiddenClass = !hasClass((void 0).body, hiddenCls.value);
|
|
if (withoutHiddenClass) {
|
|
bodyWidth = (void 0).body.style.width;
|
|
}
|
|
scrollBarWidth2 = getScrollBarWidth(ns.namespace.value);
|
|
const bodyHasOverflow = (void 0).documentElement.clientHeight < (void 0).body.scrollHeight;
|
|
const bodyOverflowY = getStyle((void 0).body, "overflowY");
|
|
if (scrollBarWidth2 > 0 && (bodyHasOverflow || bodyOverflowY === "scroll") && withoutHiddenClass) {
|
|
(void 0).body.style.width = `calc(100% - ${scrollBarWidth2}px)`;
|
|
}
|
|
addClass((void 0).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", "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", "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", "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 = (void 0).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((void 0).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 = (void 0).querySelector(options.target)) != null ? _a : (void 0).body;
|
|
} else {
|
|
target = options.target || (void 0).body;
|
|
}
|
|
return {
|
|
parent: target === (void 0).body || options.body ? (void 0).body : target,
|
|
background: options.background || "",
|
|
svg: options.svg || "",
|
|
svgViewBox: options.svgViewBox || "",
|
|
spinner: options.spinner || false,
|
|
text: options.text || "",
|
|
fullscreen: target === (void 0).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((void 0).body, "position");
|
|
instance.originalOverflow.value = getStyle((void 0).body, "overflow");
|
|
maskStyle.zIndex = nextZIndex();
|
|
} else if (options.parent === (void 0).body) {
|
|
instance.originalPosition.value = getStyle((void 0).body, "position");
|
|
await nextTick();
|
|
for (const property of ["top", "left"]) {
|
|
const scroll = property === "top" ? "scrollTop" : "scrollLeft";
|
|
maskStyle[property] = `${options.target.getBoundingClientRect()[property] + (void 0).body[scroll] + (void 0).documentElement[scroll] - Number.parseInt(getStyle((void 0).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 ? (void 0).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(void 0, "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", "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 = (void 0).body;
|
|
} else if (isString(normalized.appendTo)) {
|
|
let appendTo = (void 0).querySelector(normalized.appendTo);
|
|
if (!isElement(appendTo)) {
|
|
appendTo = (void 0).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 = (void 0).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 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-924%20-6237%20)'%3e%3cpath%20d='M%20928%206238%20C%20929.68%206238%20931%206239.32%20931%206241%20C%20931%206242.68%20929.68%206244%20928%206244%20C%20926.32%206244%20925%206242.68%20925%206241%20C%20925%206239.32%20926.32%206238%20928%206238%20Z%20'%20fill-rule='nonzero'%20fill='%23fddf6d'%20stroke='none'%20/%3e%3cpath%20d='M%20928%206238%20C%20929.68%206238%20931%206239.32%20931%206241%20C%20931%206242.68%20929.68%206244%20928%206244%20C%20926.32%206244%20925%206242.68%20925%206241%20C%20925%206239.32%20926.32%206238%20928%206238%20Z%20'%20stroke-width='2'%20stroke='%23aaaaaa'%20fill='none'%20/%3e%3c/g%3e%3c/svg%3e";
|
|
const _imports_1$2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-963%20-6237%20)'%3e%3cpath%20d='M%20967%206238%20C%20968.68%206238%20970%206239.32%20970%206241%20C%20970%206242.68%20968.68%206244%20967%206244%20C%20965.32%206244%20964%206242.68%20964%206241%20C%20964%206239.32%20965.32%206238%20967%206238%20Z%20'%20fill-rule='nonzero'%20fill='%23d7d7d7'%20stroke='none'%20/%3e%3cpath%20d='M%20967%206238%20C%20968.68%206238%20970%206239.32%20970%206241%20C%20970%206242.68%20968.68%206244%20967%206244%20C%20965.32%206244%20964%206242.68%20964%206241%20C%20964%206239.32%20965.32%206238%20967%206238%20Z%20'%20stroke-width='2'%20stroke='%23aaaaaa'%20fill='none'%20/%3e%3c/g%3e%3c/svg%3e";
|
|
const _imports_2$3 = "" + buildAssetsURL("empty-icon.LkY4ik76.svg");
|
|
const _sfc_main$2 = {
|
|
__name: "Empty",
|
|
__ssrInlineRender: true,
|
|
props: {
|
|
hint: String,
|
|
isNeedIssue: Boolean
|
|
},
|
|
setup(__props) {
|
|
useRouter();
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "empty-box-list flexcenter" }, _attrs))} data-v-84455d09><div class="dot-list flexacenter" data-v-84455d09><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-84455d09><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-84455d09><img class="item"${ssrRenderAttr("src", _imports_0$1)} data-v-84455d09><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-84455d09><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-84455d09><img class="item"${ssrRenderAttr("src", _imports_1$2)} data-v-84455d09></div><img class="empty-icon"${ssrRenderAttr("src", _imports_2$3)} data-v-84455d09>`);
|
|
if (__props.isNeedIssue) {
|
|
_push(`<!--[--><div class="empty-hint" style="${ssrRenderStyle({ "margin-bottom": "7px" })}" data-v-84455d09>\u6CA1\u6709\u627E\u5230\u76F8\u5173\u7ED3\u679C\uFF0C\u8BF7\u66F4\u6362\u641C\u7D22\u5173\u952E\u8BCD</div><div class="empty-hint flexacenter" data-v-84455d09> \u6216\u8005 <div class="sponsor" data-v-84455d09>\u53D1\u8D77\u4E00\u4E2A\u65B0\u6295\u7968</div></div><!--]-->`);
|
|
} else {
|
|
_push(`<div class="empty-hint" data-v-84455d09>${ssrInterpolate(__props.hint || "\u6682\u65E0\u5185\u5BB9")}</div>`);
|
|
}
|
|
_push(`</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_1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__scopeId", "data-v-84455d09"]]);
|
|
const getListHttp = (params) => {
|
|
return Http.post("/api/lists", params);
|
|
};
|
|
const detailsHttp = (query) => {
|
|
return Http.post("/api/details", query);
|
|
};
|
|
const commentListHttp = (params) => {
|
|
return Http.post("/api/comment/lists", params);
|
|
};
|
|
const detailsSubmitommentListHttp = (query) => {
|
|
return Http.post("/api/comment/submit", query);
|
|
};
|
|
const changeAnonymousHttp = (query) => {
|
|
return Http.post("/api/publish/changeAnonymous", query);
|
|
};
|
|
const deleteHttp = (query) => {
|
|
return Http.post("/api/publish/delete", query);
|
|
};
|
|
const unvoteCollectHttp = (query) => {
|
|
return Http.post("/api/operate/unvote", query);
|
|
};
|
|
const MyUserPublishHttp = (query) => {
|
|
return Http.post("/api/user/publish", query);
|
|
};
|
|
const MyUserTakevoteHttp = (query) => {
|
|
return Http.post("/api/user/takevote", query);
|
|
};
|
|
const MyUserDeleteCollectHttp = (query) => {
|
|
return Http.post("/api/user/deleteCollect", query);
|
|
};
|
|
const MyUserCollectHttp = (query) => {
|
|
return Http.post("/api/user/collect", query);
|
|
};
|
|
const handleDate = (dateTimeStamp = /* @__PURE__ */ new Date()) => {
|
|
dateTimeStamp = dateTimeStamp ? dateTimeStamp : null;
|
|
if (!dateTimeStamp)
|
|
return "\u521A\u521A";
|
|
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 handleDeadline = (dateTimeStamp = /* @__PURE__ */ new Date()) => {
|
|
if (typeof dateTimeStamp == "number")
|
|
dateTimeStamp = dateTimeStamp ? dateTimeStamp * 1e3 : null;
|
|
if (typeof dateTimeStamp == "string" && dateTimeStamp.match(/^\d{4}-\d{2}-\d{2}$/))
|
|
dateTimeStamp += " 23:59:59";
|
|
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 = timestamp - now;
|
|
var result;
|
|
if (diffValue < 0)
|
|
return "\u6295\u7968\u5DF2";
|
|
var dayC = diffValue / day;
|
|
var hourC = diffValue / (hour + 1);
|
|
var minC = diffValue / minute;
|
|
if (dayC >= 1)
|
|
result = "" + Math.round(dayC) + "\u5929\u540E";
|
|
else if (hourC >= 1)
|
|
result = "" + Math.round(hourC) + "\u5C0F\u65F6\u540E";
|
|
else if (minC >= 1)
|
|
result = "" + Math.round(minC) + "\u5206\u949F\u540E";
|
|
return result;
|
|
};
|
|
const colourValue = [{
|
|
main: "rgba(44, 186, 230, 1)",
|
|
bg: "rgba(234, 245, 248, 1)",
|
|
bc: "rgba(213, 235, 242, 1)"
|
|
}, {
|
|
main: "rgba(49, 215, 46, 1)",
|
|
bg: "rgba(244, 247, 244, 1)",
|
|
bc: "rgba(225, 244, 225, 1)"
|
|
}, {
|
|
main: "rgba(106, 117, 217, 1)",
|
|
bg: "rgba(237, 238, 247, 1)",
|
|
bc: "rgba(227, 228, 246, 1)"
|
|
}, {
|
|
main: "rgba(172, 183, 46, 1)",
|
|
bg: "rgba(245, 246, 228, 1)",
|
|
bc: "rgba(238, 238, 215, 1)"
|
|
}, {
|
|
main: "rgba(38, 223, 190, 1)",
|
|
bg: "rgba(237, 247, 245, 1)",
|
|
bc: "rgba(220, 244, 239, 1)"
|
|
}, {
|
|
main: "rgba(242, 122, 71, 1)",
|
|
bg: "rgba(255, 244, 239, 1)",
|
|
bc: "rgba(249, 231, 224, 1)"
|
|
}];
|
|
const base62ToDecimal = (base62) => {
|
|
const base = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
let decimal = 0;
|
|
for (let i = 0; i < base62.length; i++) {
|
|
decimal += base.indexOf(base62[i]) * Math.pow(62, base62.length - i - 1);
|
|
}
|
|
return decimal;
|
|
};
|
|
const _imports_1$1 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='8px'%20height='5px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-33%20-8%20)'%3e%3cpath%20d='M%207.91983967935872%200.515463917525773%20C%207.97327989311957%200.572737686139747%208%200.638602520045818%208%200.713058419243986%20C%208%200.787514318442153%207.97327989311957%200.853379152348224%207.91983967935872%200.910652920962199%20L%204.18436873747495%204.91408934707904%20C%204.1309285237141%204.97136311569301%204.06947227788911%205%204%205%20C%203.93052772211089%205%203.86907147628591%204.97136311569301%203.81563126252505%204.91408934707904%20L%200.0801603206412826%200.910652920962199%20C%200.0267201068804276%200.853379152348224%200%200.787514318442153%200%200.713058419243986%20C%200%200.638602520045818%200.0267201068804276%200.572737686139747%200.0801603206412826%200.515463917525773%20L%200.480961923847695%200.0859106529209624%20C%200.534402137608551%200.0286368843069867%200.595858383433534%200%200.665330661322645%200%20C%200.734802939211757%200%200.79625918503674%200.0286368843069867%200.849699398797595%200.0859106529209624%20L%204%203.46219931271478%20L%207.1503006012024%200.0859106529209624%20C%207.20374081496326%200.0286368843069867%207.26519706078824%200%207.33466933867735%200%20C%207.40414161656647%200%207.46559786239145%200.0286368843069867%207.51903807615231%200.0859106529209624%20L%207.91983967935872%200.515463917525773%20Z%20'%20fill-rule='nonzero'%20fill='%23aaaaaa'%20stroke='none'%20transform='matrix(1%200%200%201%2033%208%20)'%20/%3e%3c/g%3e%3c/svg%3e";
|
|
const _imports_2$2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='11px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-703%20-4235%20)'%3e%3cpath%20d='M%2010.8012903225806%201.1043771043771%20C%2010.9337634408602%201.2300785634119%2011%201.38271604938272%2011%201.56228956228956%20C%2011%201.74186307519641%2010.9337634408602%201.89450056116723%2010.8012903225806%202.02020202020202%20L%205.66322580645161%206.8956228956229%20L%204.69806451612903%207.81144781144781%20C%204.56559139784946%207.9371492704826%204.4047311827957%208%204.21548387096774%208%20C%204.02623655913979%208%203.86537634408602%207.9371492704826%203.73290322580645%207.81144781144781%20L%202.76774193548387%206.8956228956229%20L%200.198709677419355%204.45791245791246%20C%200.066236559139785%204.33221099887766%200%204.17957351290685%200%204%20C%200%203.82042648709315%200.066236559139785%203.66778900112233%200.198709677419355%203.54208754208754%20L%201.16387096774194%202.62626262626263%20C%201.29634408602151%202.50056116722783%201.45720430107527%202.43771043771044%201.64645161290323%202.43771043771044%20C%201.83569892473118%202.43771043771044%201.99655913978495%202.50056116722783%202.12903225806452%202.62626262626263%20L%204.21548387096774%204.61279461279461%20L%208.87096774193548%200.188552188552189%20C%209.00344086021505%200.0628507295173959%209.16430107526882%200%209.35354838709677%200%20C%209.54279569892473%200%209.7036559139785%200.0628507295173959%209.83612903225806%200.188552188552189%20L%2010.8012903225806%201.1043771043771%20Z%20'%20fill-rule='nonzero'%20fill='%2372db86'%20stroke='none'%20transform='matrix(1%200%200%201%20703%204235%20)'%20/%3e%3c/g%3e%3c/svg%3e";
|
|
const _imports_3$1 = "" + buildAssetsURL("delete-icon.p1wZUMqX.svg");
|
|
const _sfc_main$1 = {
|
|
__name: "MyPopup",
|
|
__ssrInlineRender: true,
|
|
props: {
|
|
tabList: Array
|
|
},
|
|
setup(__props, { expose: __expose }) {
|
|
let deleteState = ref(false);
|
|
let count = inject("count");
|
|
let show = ref(false);
|
|
useRouter$1();
|
|
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: 1, 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);
|
|
};
|
|
let takevoteList = [];
|
|
let takevotePage = 1;
|
|
let takevoteloading = ref(false);
|
|
const getTakevote = () => {
|
|
if (takevotePage == 0 && !takevoteloading.value)
|
|
return;
|
|
takevoteloading.value = true;
|
|
MyUserTakevoteHttp({ page: takevotePage }).then((res) => {
|
|
if (res.code != 200)
|
|
return;
|
|
let data = res.data;
|
|
takevoteList = takevoteList.concat(data.data);
|
|
if (takevoteList.length < data["count"])
|
|
takevotePage++;
|
|
else
|
|
takevotePage = 0;
|
|
showList.value = takevoteList;
|
|
}).finally(() => takevoteloading.value = false);
|
|
};
|
|
const cutMy = (key, isEmpty) => {
|
|
if (isEmpty) {
|
|
collectList = [];
|
|
collectPage = 1;
|
|
collectCount.value = 0;
|
|
takevoteList = [];
|
|
takevotePage = 1;
|
|
publishList = [];
|
|
publisPage = 1;
|
|
}
|
|
if (key == "collect" && collectList.length == 0)
|
|
getCollect();
|
|
else if (key == "takevote" && takevoteList.length == 0)
|
|
getTakevote();
|
|
else if (key == "publish" && publishList.length == 0)
|
|
getPublish();
|
|
if (key == "collect")
|
|
showList.value = collectList;
|
|
else if (key == "takevote")
|
|
showList.value = takevoteList;
|
|
else if (key == "publish")
|
|
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 refreshDataOnly = inject("refreshDataOnly");
|
|
const handleAnonymousState = (token, index, anonymous) => {
|
|
changeAnonymousHttp({ token, anonymous }).then((res) => {
|
|
if (res.code != 200) {
|
|
ElMessage.error(res.message);
|
|
return;
|
|
}
|
|
publishList[index]["anonymous"] = anonymous;
|
|
showList.value = [...publishList];
|
|
closeAllAnonymousState();
|
|
const uniqid = publishList[index]["uniqid"];
|
|
if (route.name == "details-id" && route.params.id == uniqid) {
|
|
refreshDataOnly();
|
|
}
|
|
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 == "takevote")
|
|
getTakevote();
|
|
if (MyPopupState.value == "publish")
|
|
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 unbookmarkSamePage = inject("unbookmarkSamePage");
|
|
const unbookmark = inject("unbookmark");
|
|
const cancelCollection = (token, index, uniqid) => {
|
|
const id = route.params["id"];
|
|
MyUserDeleteCollectHttp({ token }).then((res) => {
|
|
if (res.code != 200) {
|
|
ElMessage.error(res.message);
|
|
return;
|
|
}
|
|
collectList.splice(index, 1);
|
|
count.value.collect--;
|
|
collectCount.value--;
|
|
showList.value = [...collectList];
|
|
if (id == uniqid)
|
|
unbookmarkSamePage();
|
|
});
|
|
};
|
|
let deleteobj = {};
|
|
const openDeleteVote = (token, index, uniqid) => {
|
|
deleteobj["token"] = token;
|
|
deleteobj["index"] = index;
|
|
deleteobj["uniqid"] = uniqid;
|
|
deleteState.value = true;
|
|
};
|
|
const deleteVote = () => {
|
|
const id = route.params["id"];
|
|
deleteHttp({ token: deleteobj["token"] }).then((res) => {
|
|
if (res.code != 200) {
|
|
ElMessage.error(res.message);
|
|
return;
|
|
}
|
|
count.value.publish--;
|
|
publishList.splice(deleteobj["index"], 1);
|
|
showList.value = [...publishList];
|
|
if (id == deleteobj["uniqid"])
|
|
unbookmark();
|
|
ElMessage.success(res.message);
|
|
deleteobj = {};
|
|
deleteState.value = false;
|
|
});
|
|
};
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_el_dialog = ElDialog;
|
|
const _component_Empty = __nuxt_component_1;
|
|
const _component_el_scrollbar = ElScrollbar;
|
|
const _directive_loading = vLoading;
|
|
_push(`<!--[-->`);
|
|
_push(ssrRenderComponent(_component_el_dialog, {
|
|
modelValue: unref(show),
|
|
"onUpdate:modelValue": ($event) => isRef(show) ? show.value = $event : show = $event,
|
|
width: "750px",
|
|
"align-center": "",
|
|
class: "dialog-box"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`<div class="box flexflex" data-v-3baa7300${_scopeId}><img class="cross"${ssrRenderAttr("src", _imports_1$3)} alt data-v-3baa7300${_scopeId}><div class="tab-list flexcenter" data-v-3baa7300${_scopeId}><!--[-->`);
|
|
ssrRenderList(__props.tabList, (item) => {
|
|
_push2(`<div class="${ssrRenderClass([{ pitch: unref(MyPopupState) == item.type }, "tab-item flexcenter"])}" data-v-3baa7300${_scopeId}>${ssrInterpolate(item.name)} <div class="value" data-v-3baa7300${_scopeId}>${ssrInterpolate(unref(count)[item.type])}</div></div>`);
|
|
});
|
|
_push2(`<!--]--></div>`);
|
|
if (unref(MyPopupState) == "collect" && unref(collectLoading) || unref(MyPopupState) == "takevote" && unref(takevoteloading) || unref(MyPopupState) == "publish" && unref(publisloading)) {
|
|
_push2(`<div${ssrRenderAttrs(mergeProps({ class: "empty-box flexcenter" }, ssrGetDirectiveProps(_ctx, _directive_loading, true)))} data-v-3baa7300${_scopeId}></div>`);
|
|
} else {
|
|
_push2(`<!---->`);
|
|
}
|
|
if (unref(showList).length == 0) {
|
|
_push2(`<div class="empty-box flexcenter" data-v-3baa7300${_scopeId}>`);
|
|
_push2(ssrRenderComponent(_component_Empty, null, null, _parent2, _scopeId));
|
|
_push2(`</div>`);
|
|
} else {
|
|
_push2(ssrRenderComponent(_component_el_scrollbar, { height: "479px" }, {
|
|
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
if (_push3) {
|
|
_push3(`<div class="content" data-v-3baa7300${_scopeId2}><!--[-->`);
|
|
ssrRenderList(unref(showList), (item, index) => {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
_push3(`<div class="item flexflex" data-v-3baa7300${_scopeId2}><div class="left flexflex" data-v-3baa7300${_scopeId2}><div class="name ellipsis" data-v-3baa7300${_scopeId2}>${ssrInterpolate(item.title || ((_a = item.data) == null ? void 0 : _a.title))}</div><div class="message ellipsis" data-v-3baa7300${_scopeId2}>${ssrInterpolate(item.message || ((_b = item.data) == null ? void 0 : _b.message))}</div><div class="data" data-v-3baa7300${_scopeId2}>${ssrInterpolate(item.votes || ((_c = item.data) == null ? void 0 : _c.votes) || 0)}\u4EBA\u53C2\u4E0E <i data-v-3baa7300${_scopeId2}>|</i> ${ssrInterpolate(("handleDeadline" in _ctx ? _ctx.handleDeadline : unref(handleDeadline))(item.deadline || ((_d = item == null ? void 0 : item.data) == null ? void 0 : _d.deadline)))}\u7ED3\u675F `);
|
|
if (item.optionvalue || ((_e = item == null ? void 0 : item.data) == null ? void 0 : _e.optionvalue)) {
|
|
_push3(`<span data-v-3baa7300${_scopeId2}><i data-v-3baa7300${_scopeId2}>|</i> \u6211\u5DF2\u6295\uFF1A${ssrInterpolate(item.optionvalue || ((_f = item == null ? void 0 : item.data) == null ? void 0 : _f.optionvalue))}</span>`);
|
|
} else {
|
|
_push3(`<!---->`);
|
|
}
|
|
_push3(`</div></div><div class="operate-area flexacenter" data-v-3baa7300${_scopeId2}>`);
|
|
if (unref(MyPopupState) == "publish") {
|
|
_push3(`<!--[--><div class="anonymous-box flexacenter" data-v-3baa7300${_scopeId2}><div class="text" data-v-3baa7300${_scopeId2}>${ssrInterpolate(item["anonymous"] == 1 ? "\u533F\u540D" : "\u516C\u5F00")}</div><img class="arrow-icon"${ssrRenderAttr("src", _imports_1$1)} data-v-3baa7300${_scopeId2}>`);
|
|
if (item["anonymousState"]) {
|
|
_push3(`<div class="state-popup flexflex" data-v-3baa7300${_scopeId2}><div class="${ssrRenderClass([{ "pitch": item["anonymous"] == 0 }, "state-popup-item flexacenter flex1"])}" data-v-3baa7300${_scopeId2}><div class data-v-3baa7300${_scopeId2}>\u516C\u5F00\u53D1\u8868</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_2$2)} data-v-3baa7300${_scopeId2}></div><div class="${ssrRenderClass([{ "pitch": item["anonymous"] == 1 }, "state-popup-item flexacenter flex1"])}" data-v-3baa7300${_scopeId2}><div class data-v-3baa7300${_scopeId2}>\u533F\u540D\u53D1\u8868</div><img class="state-popup-icon"${ssrRenderAttr("src", _imports_2$2)} data-v-3baa7300${_scopeId2}></div></div>`);
|
|
} else {
|
|
_push3(`<!---->`);
|
|
}
|
|
_push3(`</div><div class="halving-line" data-v-3baa7300${_scopeId2}></div><img class="delete-icon"${ssrRenderAttr("src", _imports_3$1)} data-v-3baa7300${_scopeId2}><!--]-->`);
|
|
} else {
|
|
_push3(`<!---->`);
|
|
}
|
|
if (unref(MyPopupState) == "collect") {
|
|
_push3(`<img class="delete-icon"${ssrRenderAttr("src", _imports_3$1)} data-v-3baa7300${_scopeId2}>`);
|
|
} else {
|
|
_push3(`<!---->`);
|
|
}
|
|
_push3(`</div></div>`);
|
|
});
|
|
_push3(`<!--]--></div>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", {
|
|
class: "content",
|
|
onScroll: handleListScroll
|
|
}, [
|
|
(openBlock(true), createBlock(Fragment, null, renderList(unref(showList), (item, index) => {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
return openBlock(), createBlock("div", {
|
|
class: "item flexflex",
|
|
key: item.uniqid,
|
|
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 ellipsis" }, toDisplayString(item.title || ((_a = item.data) == null ? void 0 : _a.title)), 1),
|
|
createVNode("div", { class: "message ellipsis" }, toDisplayString(item.message || ((_b = item.data) == null ? void 0 : _b.message)), 1),
|
|
createVNode("div", { class: "data" }, [
|
|
createTextVNode(toDisplayString(item.votes || ((_c = item.data) == null ? void 0 : _c.votes) || 0) + "\u4EBA\u53C2\u4E0E ", 1),
|
|
createVNode("i", null, "|"),
|
|
createTextVNode(" " + toDisplayString(("handleDeadline" in _ctx ? _ctx.handleDeadline : unref(handleDeadline))(item.deadline || ((_d = item == null ? void 0 : item.data) == null ? void 0 : _d.deadline))) + "\u7ED3\u675F ", 1),
|
|
item.optionvalue || ((_e = item == null ? void 0 : item.data) == null ? void 0 : _e.optionvalue) ? (openBlock(), createBlock("span", { key: 0 }, [
|
|
createVNode("i", null, "|"),
|
|
createTextVNode(" \u6211\u5DF2\u6295\uFF1A" + toDisplayString(item.optionvalue || ((_f = item == null ? void 0 : item.data) == null ? void 0 : _f.optionvalue)), 1)
|
|
])) : createCommentVNode("", true)
|
|
])
|
|
]),
|
|
createVNode("div", { class: "operate-area flexacenter" }, [
|
|
unref(MyPopupState) == "publish" ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
createVNode("div", {
|
|
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_1$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_2$2
|
|
})
|
|
], 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_2$2
|
|
})
|
|
], 10, ["onClick"])
|
|
], 8, ["onClick"])) : createCommentVNode("", true)
|
|
], 8, ["onClick"]),
|
|
createVNode("div", { class: "halving-line" }),
|
|
createVNode("img", {
|
|
class: "delete-icon",
|
|
onClick: withModifiers(($event) => {
|
|
var _a2;
|
|
return openDeleteVote(item["token"], index, item.uniqid || ((_a2 = item == null ? void 0 : item.data) == null ? void 0 : _a2.uniqid));
|
|
}, ["stop"]),
|
|
src: _imports_3$1
|
|
}, null, 8, ["onClick"])
|
|
], 64)) : createCommentVNode("", true),
|
|
unref(MyPopupState) == "collect" ? (openBlock(), createBlock("img", {
|
|
key: 1,
|
|
class: "delete-icon",
|
|
onClick: withModifiers(($event) => {
|
|
var _a2;
|
|
return cancelCollection(item["token"], index, item.uniqid || ((_a2 = item == null ? void 0 : item.data) == null ? void 0 : _a2.uniqid));
|
|
}, ["stop"]),
|
|
src: _imports_3$1
|
|
}, null, 8, ["onClick"])) : createCommentVNode("", true)
|
|
])
|
|
], 8, ["onClick"]);
|
|
}), 128))
|
|
], 32)
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent2, _scopeId));
|
|
}
|
|
_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: "tab-list flexcenter" }, [
|
|
(openBlock(true), createBlock(Fragment, null, renderList(__props.tabList, (item) => {
|
|
return openBlock(), createBlock("div", {
|
|
class: ["tab-item flexcenter", { pitch: unref(MyPopupState) == item.type }],
|
|
key: item.type,
|
|
onClick: ($event) => cutMy(item.type)
|
|
}, [
|
|
createTextVNode(toDisplayString(item.name) + " ", 1),
|
|
createVNode("div", { class: "value" }, toDisplayString(unref(count)[item.type]), 1)
|
|
], 10, ["onClick"]);
|
|
}), 128))
|
|
]),
|
|
unref(MyPopupState) == "collect" && unref(collectLoading) || unref(MyPopupState) == "takevote" && unref(takevoteloading) || unref(MyPopupState) == "publish" && unref(publisloading) ? withDirectives((openBlock(), createBlock("div", {
|
|
key: 0,
|
|
class: "empty-box flexcenter"
|
|
}, null, 512)), [
|
|
[_directive_loading, true]
|
|
]) : createCommentVNode("", true),
|
|
unref(showList).length == 0 ? (openBlock(), createBlock("div", {
|
|
key: 1,
|
|
class: "empty-box flexcenter"
|
|
}, [
|
|
createVNode(_component_Empty)
|
|
])) : (openBlock(), createBlock(_component_el_scrollbar, {
|
|
key: 2,
|
|
height: "479px"
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode("div", {
|
|
class: "content",
|
|
onScroll: handleListScroll
|
|
}, [
|
|
(openBlock(true), createBlock(Fragment, null, renderList(unref(showList), (item, index) => {
|
|
var _a, _b, _c, _d, _e, _f;
|
|
return openBlock(), createBlock("div", {
|
|
class: "item flexflex",
|
|
key: item.uniqid,
|
|
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 ellipsis" }, toDisplayString(item.title || ((_a = item.data) == null ? void 0 : _a.title)), 1),
|
|
createVNode("div", { class: "message ellipsis" }, toDisplayString(item.message || ((_b = item.data) == null ? void 0 : _b.message)), 1),
|
|
createVNode("div", { class: "data" }, [
|
|
createTextVNode(toDisplayString(item.votes || ((_c = item.data) == null ? void 0 : _c.votes) || 0) + "\u4EBA\u53C2\u4E0E ", 1),
|
|
createVNode("i", null, "|"),
|
|
createTextVNode(" " + toDisplayString(("handleDeadline" in _ctx ? _ctx.handleDeadline : unref(handleDeadline))(item.deadline || ((_d = item == null ? void 0 : item.data) == null ? void 0 : _d.deadline))) + "\u7ED3\u675F ", 1),
|
|
item.optionvalue || ((_e = item == null ? void 0 : item.data) == null ? void 0 : _e.optionvalue) ? (openBlock(), createBlock("span", { key: 0 }, [
|
|
createVNode("i", null, "|"),
|
|
createTextVNode(" \u6211\u5DF2\u6295\uFF1A" + toDisplayString(item.optionvalue || ((_f = item == null ? void 0 : item.data) == null ? void 0 : _f.optionvalue)), 1)
|
|
])) : createCommentVNode("", true)
|
|
])
|
|
]),
|
|
createVNode("div", { class: "operate-area flexacenter" }, [
|
|
unref(MyPopupState) == "publish" ? (openBlock(), createBlock(Fragment, { key: 0 }, [
|
|
createVNode("div", {
|
|
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_1$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_2$2
|
|
})
|
|
], 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_2$2
|
|
})
|
|
], 10, ["onClick"])
|
|
], 8, ["onClick"])) : createCommentVNode("", true)
|
|
], 8, ["onClick"]),
|
|
createVNode("div", { class: "halving-line" }),
|
|
createVNode("img", {
|
|
class: "delete-icon",
|
|
onClick: withModifiers(($event) => {
|
|
var _a2;
|
|
return openDeleteVote(item["token"], index, item.uniqid || ((_a2 = item == null ? void 0 : item.data) == null ? void 0 : _a2.uniqid));
|
|
}, ["stop"]),
|
|
src: _imports_3$1
|
|
}, null, 8, ["onClick"])
|
|
], 64)) : createCommentVNode("", true),
|
|
unref(MyPopupState) == "collect" ? (openBlock(), createBlock("img", {
|
|
key: 1,
|
|
class: "delete-icon",
|
|
onClick: withModifiers(($event) => {
|
|
var _a2;
|
|
return cancelCollection(item["token"], index, item.uniqid || ((_a2 = item == null ? void 0 : item.data) == null ? void 0 : _a2.uniqid));
|
|
}, ["stop"]),
|
|
src: _imports_3$1
|
|
}, null, 8, ["onClick"])) : createCommentVNode("", true)
|
|
])
|
|
], 8, ["onClick"]);
|
|
}), 128))
|
|
], 32)
|
|
]),
|
|
_: 1
|
|
}))
|
|
])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(ssrRenderComponent(_component_el_dialog, {
|
|
class: "options-popup",
|
|
modelValue: unref(deleteState),
|
|
"onUpdate:modelValue": ($event) => isRef(deleteState) ? deleteState.value = $event : deleteState = $event,
|
|
width: "488px",
|
|
"align-center": ""
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(`<div class="options-popup-text" data-v-3baa7300${_scopeId}>\u60A8\u8981\u5220\u9664\u6295\u7968\u5417\uFF1F</div><div class="options-popup-btn flexflex" data-v-3baa7300${_scopeId}><div class="options-popup-item options-no flexcenter" data-v-3baa7300${_scopeId}>\u5220\u9664\u6295\u7968</div><div class="options-popup-item options-yes flexcenter" data-v-3baa7300${_scopeId}>\u4E0D\u5220\u9664</div></div>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", { class: "options-popup-text" }, "\u60A8\u8981\u5220\u9664\u6295\u7968\u5417\uFF1F"),
|
|
createVNode("div", { class: "options-popup-btn flexflex" }, [
|
|
createVNode("div", {
|
|
class: "options-popup-item options-no flexcenter",
|
|
onClick: deleteVote
|
|
}, "\u5220\u9664\u6295\u7968"),
|
|
createVNode("div", {
|
|
class: "options-popup-item options-yes flexcenter",
|
|
onClick: ($event) => isRef(deleteState) ? deleteState.value = false : deleteState = false
|
|
}, "\u4E0D\u5220\u9664", 8, ["onClick"])
|
|
])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(`<!--]-->`);
|
|
};
|
|
}
|
|
};
|
|
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$1 = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__scopeId", "data-v-3baa7300"]]);
|
|
const _imports_0 = "" + buildAssetsURL("logo-icon.fQ3LbI4i.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$1 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='130px'%20height='32px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cdefs%3e%3cradialGradient%20cx='1585'%20cy='111.066666666665'%20r='188.8'%20gradientTransform='matrix(-0.937500000000005%202.86023558886481E-15%20-3.05091796145579E-15%20-1%203070.93750000001%20222.133333333325%20)'%20gradientUnits='userSpaceOnUse'%20id='RadialGradient853'%3e%3cstop%20id='Stop854'%20stop-color='%2368d2f4'%20offset='0'%20/%3e%3cstop%20id='Stop855'%20stop-color='%238ee88c'%20offset='0.51'%20/%3e%3cstop%20id='Stop856'%20stop-color='%238892f0'%20offset='1'%20/%3e%3c/radialGradient%3e%3c/defs%3e%3cg%20transform='matrix(1%200%200%201%20-1430%20-94%20)'%3e%3cpath%20d='M%201430%2099%20A%205%205%200%200%201%201435%2094%20L%201555%2094%20A%205%205%200%200%201%201560%2099%20L%201560%20121%20A%205%205%200%200%201%201555%20126%20L%201435%20126%20A%205%205%200%200%201%201430%20121%20L%201430%2099%20Z%20'%20fill-rule='nonzero'%20fill='url(%23RadialGradient853)'%20stroke='none'%20/%3e%3c/g%3e%3c/svg%3e";
|
|
const _imports_3 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='14px'%20height='14px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-1460%20-103%20)'%3e%3cpath%20d='M%2010.91015625%207.99348958333333%20C%2011.0256076388889%207.87803819444444%2011.0833333333333%207.74131944444444%2011.0833333333333%207.58333333333333%20L%2011.0833333333333%206.41666666666667%20C%2011.0833333333333%206.25868055555555%2011.0256076388889%206.12196180555555%2010.91015625%206.00651041666667%20C%2010.7947048611111%205.89105902777778%2010.6579861111111%205.83333333333333%2010.5%205.83333333333333%20L%208.16666666666667%205.83333333333333%20L%208.16666666666667%203.5%20C%208.16666666666667%203.34201388888889%208.10894097222222%203.20529513888889%207.99348958333333%203.08984375%20C%207.87803819444445%202.97439236111111%207.74131944444445%202.91666666666667%207.58333333333333%202.91666666666667%20L%206.41666666666667%202.91666666666667%20C%206.25868055555556%202.91666666666667%206.12196180555556%202.97439236111111%206.00651041666667%203.08984375%20C%205.89105902777778%203.20529513888889%205.83333333333333%203.34201388888889%205.83333333333333%203.5%20L%205.83333333333333%205.83333333333333%20L%203.5%205.83333333333333%20C%203.34201388888889%205.83333333333333%203.20529513888889%205.89105902777778%203.08984375%206.00651041666667%20C%202.97439236111111%206.12196180555555%202.91666666666667%206.25868055555555%202.91666666666667%206.41666666666667%20L%202.91666666666667%207.58333333333333%20C%202.91666666666667%207.74131944444444%202.97439236111111%207.87803819444444%203.08984375%207.99348958333333%20C%203.20529513888889%208.10894097222222%203.34201388888889%208.16666666666667%203.5%208.16666666666667%20L%205.83333333333333%208.16666666666667%20L%205.83333333333333%2010.5%20C%205.83333333333333%2010.6579861111111%205.89105902777778%2010.7947048611111%206.00651041666667%2010.91015625%20C%206.12196180555556%2011.0256076388889%206.25868055555556%2011.0833333333333%206.41666666666667%2011.0833333333333%20L%207.58333333333333%2011.0833333333333%20C%207.74131944444445%2011.0833333333333%207.87803819444445%2011.0256076388889%207.99348958333333%2010.91015625%20C%208.10894097222222%2010.7947048611111%208.16666666666667%2010.6579861111111%208.16666666666667%2010.5%20L%208.16666666666667%208.16666666666667%20L%2010.5%208.16666666666667%20C%2010.6579861111111%208.16666666666667%2010.7947048611111%208.10894097222222%2010.91015625%207.99348958333333%20Z%20M%2013.0611979166667%203.486328125%20C%2013.6870659722222%204.55881076388889%2014%205.73003472222222%2014%207%20C%2014%208.26996527777778%2013.6870659722222%209.44118923611111%2013.0611979166667%2010.513671875%20C%2012.4353298611111%2011.5861545138889%2011.5861545138889%2012.4353298611111%2010.513671875%2013.0611979166667%20C%209.44118923611111%2013.6870659722222%208.26996527777778%2014%207%2014%20C%205.73003472222222%2014%204.55881076388889%2013.6870659722222%203.486328125%2013.0611979166667%20C%202.41384548611111%2012.4353298611111%201.56467013888889%2011.5861545138889%200.938802083333333%2010.513671875%20C%200.312934027777778%209.44118923611111%200%208.26996527777778%200%207%20C%200%205.73003472222222%200.312934027777778%204.55881076388889%200.938802083333333%203.486328125%20C%201.56467013888889%202.41384548611111%202.41384548611111%201.56467013888889%203.486328125%200.938802083333333%20C%204.55881076388889%200.312934027777777%205.73003472222222%200%207%200%20C%208.26996527777778%200%209.44118923611111%200.312934027777777%2010.513671875%200.938802083333333%20C%2011.5861545138889%201.56467013888889%2012.4353298611111%202.41384548611111%2013.0611979166667%203.486328125%20Z%20'%20fill-rule='nonzero'%20fill='%23000000'%20stroke='none'%20transform='matrix(1%200%200%201%201460%20103%20)'%20/%3e%3c/g%3e%3c/svg%3e";
|
|
const _sfc_main = {
|
|
__name: "top-head",
|
|
__ssrInlineRender: true,
|
|
setup(__props, { expose: __expose }) {
|
|
useRouter();
|
|
const route = useRoute$1();
|
|
inject("isNeedLogin");
|
|
inject("goLogin");
|
|
const tabList = [
|
|
{ name: "\u6211\u7684\u6536\u85CF", type: "collect" },
|
|
{ name: "\u6211\u53C2\u4E0E\u7684\u6295\u7968", type: "takevote" },
|
|
{ name: "\u6211\u53D1\u8D77\u7684\u6295\u7968", type: "publish" }
|
|
];
|
|
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$1;
|
|
_push(`<!--[--><section class="header flexacenter" data-v-4f654ade><div class="header-box flexacenter" data-v-4f654ade><a href="/index.html" data-v-4f654ade><img class="logo-icon"${ssrRenderAttr("src", _imports_0)} data-v-4f654ade></a><div class="header-right flexacenter" data-v-4f654ade><div class="search-box flexacenter" data-v-4f654ade><input class="flex1" placeholder="\u8F93\u5165\u641C\u7D22\u5173\u952E\u8BCD"${ssrRenderAttr("value", unref(keyword))} data-v-4f654ade><img class="search-icon"${ssrRenderAttr("src", _imports_1)} data-v-4f654ade>`);
|
|
if (unref(historicalSearchState)) {
|
|
_push(`<div class="history-box" data-v-4f654ade><div class="history-title" data-v-4f654ade>\u5386\u53F2\u641C\u7D22</div><div class="history-list" data-v-4f654ade><!--[-->`);
|
|
ssrRenderList(unref(historicalSearchList), (item, index) => {
|
|
_push(`<div class="history-item ellipsis" data-v-4f654ade>${ssrInterpolate(item)}</div>`);
|
|
});
|
|
_push(`<!--]--></div></div>`);
|
|
} else {
|
|
_push(`<!---->`);
|
|
}
|
|
_push(`</div><div class="my-btn-list flexacenter" data-v-4f654ade><!--[-->`);
|
|
ssrRenderList(tabList, (item) => {
|
|
_push(`<div class="my-btn-item flexcenter" data-v-4f654ade>${ssrInterpolate(item.name)}</div>`);
|
|
});
|
|
_push(`<!--]--></div><div class="sponsor-btn flexcenter" data-v-4f654ade><img class="add-bj"${ssrRenderAttr("src", _imports_2$1)} data-v-4f654ade><img class="add-icon"${ssrRenderAttr("src", _imports_3)} data-v-4f654ade> \u53D1\u5E03\u6295\u7968 </div></div></div></section>`);
|
|
_push(ssrRenderComponent(_component_MyPopup, {
|
|
ref_key: "MyPopupRef",
|
|
ref: MyPopupRef,
|
|
tabList
|
|
}, 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_0 = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__scopeId", "data-v-4f654ade"]]);
|
|
const _imports_2 = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3csvg%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='13px'%20height='8px'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20transform='matrix(1%200%200%201%20-602%20-543%20)'%3e%3cpath%20d='M%209.65206473214286%206.26736111111111%20C%2010.6217447916667%205.70486111111111%2011.4281994047619%204.94907407407407%2012.0714285714286%204%20C%2011.3363095238095%202.90740740740741%2010.4149925595238%202.09027777777778%209.30747767857143%201.54861111111111%20C%209.60249255952381%202.03009259259259%209.75%202.55092592592593%209.75%203.11111111111111%20C%209.75%203.96759259259259%209.43201264880952%204.70023148148148%208.79603794642857%205.30902777777778%20C%208.16006324404762%205.91782407407407%207.39471726190476%206.22222222222222%206.5%206.22222222222222%20C%205.60528273809524%206.22222222222222%204.83993675595238%205.91782407407407%204.20396205357143%205.30902777777778%20C%203.56798735119048%204.70023148148148%203.25%203.96759259259259%203.25%203.11111111111111%20C%203.25%202.55092592592593%203.39750744047619%202.03009259259259%203.69252232142857%201.54861111111111%20C%202.58500744047619%202.09027777777778%201.66369047619048%202.90740740740741%200.928571428571428%204%20C%201.5718005952381%204.94907407407407%202.37825520833333%205.70486111111111%203.34793526785714%206.26736111111111%20C%204.31761532738095%206.82986111111111%205.36830357142857%207.11111111111111%206.5%207.11111111111111%20C%207.63169642857143%207.11111111111111%208.68238467261905%206.82986111111111%209.65206473214286%206.26736111111111%20Z%20M%206.74665178571429%201.56944444444444%20C%206.81436011904762%201.50462962962963%206.84821428571429%201.42592592592593%206.84821428571429%201.33333333333333%20C%206.84821428571429%201.24074074074074%206.81436011904762%201.16203703703704%206.74665178571429%201.09722222222222%20C%206.67894345238095%201.03240740740741%206.59672619047619%200.999999999999999%206.5%201%20C%205.89546130952381%200.999999999999999%205.37676711309524%201.20717592592593%204.94391741071429%201.62152777777778%20C%204.51106770833333%202.03587962962963%204.29464285714286%202.53240740740741%204.29464285714286%203.11111111111111%20C%204.29464285714286%203.2037037037037%204.32849702380952%203.28240740740741%204.39620535714286%203.34722222222222%20C%204.46391369047619%203.41203703703704%204.54613095238095%203.44444444444444%204.64285714285714%203.44444444444444%20C%204.73958333333333%203.44444444444444%204.8218005952381%203.41203703703704%204.88950892857143%203.34722222222222%20C%204.95721726190476%203.28240740740741%204.99107142857143%203.2037037037037%204.99107142857143%203.11111111111111%20C%204.99107142857143%202.71296296296296%205.13857886904762%202.37268518518519%205.43359375%202.09027777777778%20C%205.72860863095238%201.80787037037037%206.08407738095238%201.66666666666667%206.5%201.66666666666667%20C%206.59672619047619%201.66666666666667%206.67894345238095%201.63425925925926%206.74665178571429%201.56944444444444%20Z%20M%2012.8549107142857%203.52083333333333%20C%2012.9516369047619%203.68287037037037%2013%203.84259259259259%2013%204%20C%2013%204.15740740740741%2012.9516369047619%204.31712962962963%2012.8549107142857%204.47916666666667%20C%2012.1778273809524%205.54398148148148%2011.2673921130952%206.39699074074074%2010.1236049107143%207.03819444444444%20C%208.97981770833333%207.67939814814815%207.77194940476191%208%206.5%208%20C%205.2280505952381%208%204.02018229166667%207.67824074074074%202.87639508928571%207.03472222222222%20C%201.73260788690476%206.3912037037037%200.822172619047619%205.53935185185185%200.145089285714286%204.47916666666667%20C%200.0483630952380952%204.31712962962963%200%204.15740740740741%200%204%20C%200%203.84259259259259%200.0483630952380952%203.68287037037037%200.145089285714286%203.52083333333333%20C%200.822172619047619%202.46064814814815%201.73260788690476%201.6087962962963%202.87639508928571%200.965277777777778%20C%204.02018229166667%200.321759259259259%205.2280505952381%200%206.5%200%20C%207.77194940476191%200%208.97981770833333%200.321759259259259%2010.1236049107143%200.965277777777778%20C%2011.2673921130952%201.6087962962963%2012.1778273809524%202.46064814814815%2012.8549107142857%203.52083333333333%20Z%20'%20fill-rule='nonzero'%20fill='%23a4a3a3'%20stroke='none'%20transform='matrix(1%200%200%201%20602%20543%20)'%20/%3e%3c/g%3e%3c/svg%3e";
|
|
|
|
export { ElMessage as E, _imports_2 as _, colourValue as a, base62ToDecimal as b, commentListHttp as c, detailsHttp as d, handleDeadline as e, detailsSubmitommentListHttp as f, __nuxt_component_1 as g, handleDate as h, ElDialog as i, __nuxt_component_0 as j, getListHttp as k, unvoteCollectHttp as u, vLoading as v };
|
|
//# sourceMappingURL=eye-icon-w_o_eN8L.mjs.map
|