Some checks failed
🚀 Deploy - Demo / deployment (push) Has been cancelled
- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경 - Nginx 리버스 프록시 설정 파일 추가 - 배포 가이드 업데이트
863 lines
41 KiB
JavaScript
863 lines
41 KiB
JavaScript
import { _ as __nuxt_component_0 } from './nuxt-link-DwrCF35s.mjs';
|
|
import { defineComponent, ref, mergeProps, unref, withCtx, createVNode, createTextVNode, toDisplayString, useId, createBlock, createCommentVNode, openBlock, withModifiers, computed, toRef, useSSRContext } from 'vue';
|
|
import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate } from 'vue/server-renderer';
|
|
import { l as logo } from './logo-C2NYPRdy.mjs';
|
|
import { a as authV1TopShape, b as authV1BottomShape } from './auth-v1-top-shape-smMuVKoE.mjs';
|
|
import { aI as useRouter$1, a6 as VImg, B as VCard, a7 as VCardItem, C as VCardText, g as genericComponent, D as VBtn, aJ as useCookie, p as propsFactory, n as useProxiedModel, F as provideTheme, ah as useVariant, ai as useDensity, f as useDimension, aj as useElevation, aE as useLocation, aF as usePosition, ak as useRounded, at as useTextColor, l as useLocale, ao as genOverlays, s as VIcon, y as VDefaultsProvider, aD as createSimpleFunctional, J as makeVariantProps, K as makeThemeProps, L as makeTagProps, N as makeRoundedProps, aG as makePositionProps, aH as makeLocationProps, O as makeElevationProps, k as makeDimensionProps, P as makeDensityProps, m as makeComponentProps, I as IconValue } from './server.mjs';
|
|
import { V as VForm, a as VTextField } from './VTextField-Bxu4ONGD.mjs';
|
|
import { V as VRow, a as VCol } from './VRow-MQIguEmB.mjs';
|
|
import '../nitro/nitro.mjs';
|
|
import 'node:http';
|
|
import 'node:https';
|
|
import 'node:events';
|
|
import 'node:buffer';
|
|
import 'node:fs';
|
|
import 'node:path';
|
|
import 'node:crypto';
|
|
import 'node:url';
|
|
import '../routes/renderer.mjs';
|
|
import 'vue-bundle-renderer/runtime';
|
|
import 'devalue';
|
|
import '@unhead/ssr';
|
|
import 'unhead';
|
|
import '@unhead/shared';
|
|
import 'pinia';
|
|
import 'vue-router';
|
|
import './index-BNHdF426.mjs';
|
|
|
|
const VAlertTitle = createSimpleFunctional("v-alert-title");
|
|
const allowedTypes = ["success", "info", "warning", "error"];
|
|
const makeVAlertProps = propsFactory({
|
|
border: {
|
|
type: [Boolean, String],
|
|
validator: (val) => {
|
|
return typeof val === "boolean" || ["top", "end", "bottom", "start"].includes(val);
|
|
}
|
|
},
|
|
borderColor: String,
|
|
closable: Boolean,
|
|
closeIcon: {
|
|
type: IconValue,
|
|
default: "$close"
|
|
},
|
|
closeLabel: {
|
|
type: String,
|
|
default: "$vuetify.close"
|
|
},
|
|
icon: {
|
|
type: [Boolean, String, Function, Object],
|
|
default: null
|
|
},
|
|
modelValue: {
|
|
type: Boolean,
|
|
default: true
|
|
},
|
|
prominent: Boolean,
|
|
title: String,
|
|
text: String,
|
|
type: {
|
|
type: String,
|
|
validator: (val) => allowedTypes.includes(val)
|
|
},
|
|
...makeComponentProps(),
|
|
...makeDensityProps(),
|
|
...makeDimensionProps(),
|
|
...makeElevationProps(),
|
|
...makeLocationProps(),
|
|
...makePositionProps(),
|
|
...makeRoundedProps(),
|
|
...makeTagProps(),
|
|
...makeThemeProps(),
|
|
...makeVariantProps({
|
|
variant: "flat"
|
|
})
|
|
}, "VAlert");
|
|
const VAlert = genericComponent()({
|
|
name: "VAlert",
|
|
props: makeVAlertProps(),
|
|
emits: {
|
|
"click:close": (e) => true,
|
|
"update:modelValue": (value) => true
|
|
},
|
|
setup(props, _ref) {
|
|
let {
|
|
emit,
|
|
slots
|
|
} = _ref;
|
|
const isActive = useProxiedModel(props, "modelValue");
|
|
const icon = computed(() => {
|
|
var _a;
|
|
if (props.icon === false) return void 0;
|
|
if (!props.type) return props.icon;
|
|
return (_a = props.icon) != null ? _a : `$${props.type}`;
|
|
});
|
|
const variantProps = computed(() => {
|
|
var _a;
|
|
return {
|
|
color: (_a = props.color) != null ? _a : props.type,
|
|
variant: props.variant
|
|
};
|
|
});
|
|
const {
|
|
themeClasses
|
|
} = provideTheme(props);
|
|
const {
|
|
colorClasses,
|
|
colorStyles,
|
|
variantClasses
|
|
} = useVariant(variantProps);
|
|
const {
|
|
densityClasses
|
|
} = useDensity(props);
|
|
const {
|
|
dimensionStyles
|
|
} = useDimension(props);
|
|
const {
|
|
elevationClasses
|
|
} = useElevation(props);
|
|
const {
|
|
locationStyles
|
|
} = useLocation(props);
|
|
const {
|
|
positionClasses
|
|
} = usePosition(props);
|
|
const {
|
|
roundedClasses
|
|
} = useRounded(props);
|
|
const {
|
|
textColorClasses,
|
|
textColorStyles
|
|
} = useTextColor(toRef(props, "borderColor"));
|
|
const {
|
|
t
|
|
} = useLocale();
|
|
const closeProps = computed(() => ({
|
|
"aria-label": t(props.closeLabel),
|
|
onClick(e) {
|
|
isActive.value = false;
|
|
emit("click:close", e);
|
|
}
|
|
}));
|
|
return () => {
|
|
const hasPrepend = !!(slots.prepend || icon.value);
|
|
const hasTitle = !!(slots.title || props.title);
|
|
const hasClose = !!(slots.close || props.closable);
|
|
return isActive.value && createVNode(props.tag, {
|
|
"class": ["v-alert", props.border && {
|
|
"v-alert--border": !!props.border,
|
|
[`v-alert--border-${props.border === true ? "start" : props.border}`]: true
|
|
}, {
|
|
"v-alert--prominent": props.prominent
|
|
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
|
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
"role": "alert"
|
|
}, {
|
|
default: () => {
|
|
var _a2;
|
|
var _a, _b;
|
|
return [genOverlays(false, "v-alert"), props.border && createVNode("div", {
|
|
"key": "border",
|
|
"class": ["v-alert__border", textColorClasses.value],
|
|
"style": textColorStyles.value
|
|
}, null), hasPrepend && createVNode("div", {
|
|
"key": "prepend",
|
|
"class": "v-alert__prepend"
|
|
}, [!slots.prepend ? createVNode(VIcon, {
|
|
"key": "prepend-icon",
|
|
"density": props.density,
|
|
"icon": icon.value,
|
|
"size": props.prominent ? 44 : 28
|
|
}, null) : createVNode(VDefaultsProvider, {
|
|
"key": "prepend-defaults",
|
|
"disabled": !icon.value,
|
|
"defaults": {
|
|
VIcon: {
|
|
density: props.density,
|
|
icon: icon.value,
|
|
size: props.prominent ? 44 : 28
|
|
}
|
|
}
|
|
}, slots.prepend)]), createVNode("div", {
|
|
"class": "v-alert__content"
|
|
}, [hasTitle && createVNode(VAlertTitle, {
|
|
"key": "title"
|
|
}, {
|
|
default: () => {
|
|
var _a3;
|
|
var _a22;
|
|
return [(_a3 = (_a22 = slots.title) == null ? void 0 : _a22.call(slots)) != null ? _a3 : props.title];
|
|
}
|
|
}), (_a2 = (_a = slots.text) == null ? void 0 : _a.call(slots)) != null ? _a2 : props.text, (_b = slots.default) == null ? void 0 : _b.call(slots)]), slots.append && createVNode("div", {
|
|
"key": "append",
|
|
"class": "v-alert__append"
|
|
}, [slots.append()]), hasClose && createVNode("div", {
|
|
"key": "close",
|
|
"class": "v-alert__close"
|
|
}, [!slots.close ? createVNode(VBtn, mergeProps({
|
|
"key": "close-btn",
|
|
"icon": props.closeIcon,
|
|
"size": "x-small",
|
|
"variant": "text"
|
|
}, closeProps.value), null) : createVNode(VDefaultsProvider, {
|
|
"key": "close-defaults",
|
|
"defaults": {
|
|
VBtn: {
|
|
icon: props.closeIcon,
|
|
size: "x-small",
|
|
variant: "text"
|
|
}
|
|
}
|
|
}, {
|
|
default: () => {
|
|
var _a22;
|
|
return [(_a22 = slots.close) == null ? void 0 : _a22.call(slots, {
|
|
props: closeProps.value
|
|
})];
|
|
}
|
|
})])];
|
|
}
|
|
});
|
|
};
|
|
}
|
|
});
|
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
__name: "login",
|
|
__ssrInlineRender: true,
|
|
setup(__props) {
|
|
const form = ref({
|
|
user_id: "",
|
|
password: "",
|
|
remember: false
|
|
});
|
|
const isPasswordVisible = ref(false);
|
|
const isLoading = ref(false);
|
|
const errorMessage = ref("");
|
|
const router = useRouter$1();
|
|
const handleLogin = async () => {
|
|
var _a;
|
|
if (!form.value.user_id || !form.value.password) {
|
|
errorMessage.value = "\uC544\uC774\uB514\uC640 \uBE44\uBC00\uBC88\uD638\uB97C \uC785\uB825\uD574\uC8FC\uC138\uC694.";
|
|
return;
|
|
}
|
|
isLoading.value = true;
|
|
errorMessage.value = "";
|
|
try {
|
|
const response = await $fetch("/api/auth/login", {
|
|
method: "POST",
|
|
body: {
|
|
user_id: form.value.user_id,
|
|
password: form.value.password
|
|
}
|
|
});
|
|
if (response.success) {
|
|
const token = useCookie("auth-token", {
|
|
maxAge: 60 * 60 * 24,
|
|
// 24시간
|
|
secure: true,
|
|
sameSite: "strict"
|
|
});
|
|
token.value = response.token;
|
|
const user = useCookie("user-info", {
|
|
maxAge: 60 * 60 * 24,
|
|
secure: true,
|
|
sameSite: "strict"
|
|
});
|
|
user.value = JSON.stringify(response.user);
|
|
await router.push("/dashboard");
|
|
} else {
|
|
errorMessage.value = response.message || "\uB85C\uADF8\uC778\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.";
|
|
}
|
|
} catch (error) {
|
|
console.error("Login error:", error);
|
|
console.error("Error details:", {
|
|
statusCode: error.statusCode,
|
|
statusMessage: error.statusMessage,
|
|
data: error.data
|
|
});
|
|
errorMessage.value = ((_a = error.data) == null ? void 0 : _a.statusMessage) || error.statusMessage || "\uB85C\uADF8\uC778 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.";
|
|
} finally {
|
|
isLoading.value = false;
|
|
}
|
|
};
|
|
return (_ctx, _push, _parent, _attrs) => {
|
|
const _component_NuxtLink = __nuxt_component_0;
|
|
_push(`<div${ssrRenderAttrs(mergeProps({ class: "auth-wrapper d-flex align-center justify-center pa-4" }, _attrs))}><div class="position-relative my-sm-16">`);
|
|
_push(ssrRenderComponent(VImg, {
|
|
src: unref(authV1TopShape),
|
|
class: "text-primary auth-v1-top-shape d-none d-sm-block"
|
|
}, null, _parent));
|
|
_push(ssrRenderComponent(VImg, {
|
|
src: unref(authV1BottomShape),
|
|
class: "text-primary auth-v1-bottom-shape d-none d-sm-block"
|
|
}, null, _parent));
|
|
_push(ssrRenderComponent(VCard, {
|
|
class: ["auth-card", _ctx.$vuetify.display.smAndUp ? "pa-6" : "pa-0"],
|
|
"max-width": "460"
|
|
}, {
|
|
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
if (_push2) {
|
|
_push2(ssrRenderComponent(VCardItem, { class: "justify-center" }, {
|
|
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
if (_push3) {
|
|
_push3(ssrRenderComponent(_component_NuxtLink, {
|
|
to: "/",
|
|
class: "app-logo"
|
|
}, {
|
|
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
var _a;
|
|
if (_push4) {
|
|
_push4(`<div class="d-flex"${_scopeId3}>${(_a = unref(logo)) != null ? _a : ""}</div><h1 class="app-logo-title"${_scopeId3}> sneat </h1>`);
|
|
} else {
|
|
return [
|
|
createVNode("div", {
|
|
class: "d-flex",
|
|
innerHTML: unref(logo)
|
|
}, null, 8, ["innerHTML"]),
|
|
createVNode("h1", { class: "app-logo-title" }, " sneat ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent3, _scopeId2));
|
|
} else {
|
|
return [
|
|
createVNode(_component_NuxtLink, {
|
|
to: "/",
|
|
class: "app-logo"
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode("div", {
|
|
class: "d-flex",
|
|
innerHTML: unref(logo)
|
|
}, null, 8, ["innerHTML"]),
|
|
createVNode("h1", { class: "app-logo-title" }, " sneat ")
|
|
]),
|
|
_: 1
|
|
})
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent2, _scopeId));
|
|
_push2(ssrRenderComponent(VCardText, null, {
|
|
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
if (_push3) {
|
|
_push3(`<h4 class="text-h4 mb-1"${_scopeId2}> \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} </h4><p class="mb-0"${_scopeId2}> \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 </p>`);
|
|
} else {
|
|
return [
|
|
createVNode("h4", { class: "text-h4 mb-1" }, " \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} "),
|
|
createVNode("p", { class: "mb-0" }, " \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent2, _scopeId));
|
|
_push2(ssrRenderComponent(VCardText, null, {
|
|
default: withCtx((_2, _push3, _parent3, _scopeId2) => {
|
|
if (_push3) {
|
|
_push3(ssrRenderComponent(VForm, { onSubmit: handleLogin }, {
|
|
default: withCtx((_3, _push4, _parent4, _scopeId3) => {
|
|
if (_push4) {
|
|
_push4(ssrRenderComponent(VRow, null, {
|
|
default: withCtx((_4, _push5, _parent5, _scopeId4) => {
|
|
if (_push5) {
|
|
if (unref(errorMessage)) {
|
|
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
|
|
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
|
if (_push6) {
|
|
_push6(ssrRenderComponent(VAlert, {
|
|
type: "error",
|
|
variant: "tonal",
|
|
closable: "",
|
|
"onClick:close": ($event) => errorMessage.value = ""
|
|
}, {
|
|
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
|
|
if (_push7) {
|
|
_push7(`${ssrInterpolate(unref(errorMessage))}`);
|
|
} else {
|
|
return [
|
|
createTextVNode(toDisplayString(unref(errorMessage)), 1)
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent6, _scopeId5));
|
|
} else {
|
|
return [
|
|
createVNode(VAlert, {
|
|
type: "error",
|
|
variant: "tonal",
|
|
closable: "",
|
|
"onClick:close": ($event) => errorMessage.value = ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(toDisplayString(unref(errorMessage)), 1)
|
|
]),
|
|
_: 1
|
|
}, 8, ["onClick:close"])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent5, _scopeId4));
|
|
} else {
|
|
_push5(`<!---->`);
|
|
}
|
|
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
|
|
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
|
if (_push6) {
|
|
_push6(ssrRenderComponent(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).user_id,
|
|
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
|
|
autofocus: "",
|
|
label: "\uC544\uC774\uB514",
|
|
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
|
|
}, null, _parent6, _scopeId5));
|
|
} else {
|
|
return [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).user_id,
|
|
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
|
|
autofocus: "",
|
|
label: "\uC544\uC774\uB514",
|
|
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent5, _scopeId4));
|
|
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
|
|
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
|
if (_push6) {
|
|
_push6(ssrRenderComponent(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).password,
|
|
"onUpdate:modelValue": ($event) => unref(form).password = $event,
|
|
label: "\uBE44\uBC00\uBC88\uD638",
|
|
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
|
|
type: unref(isPasswordVisible) ? "text" : "password",
|
|
autocomplete: "password",
|
|
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
|
|
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
|
|
}, null, _parent6, _scopeId5));
|
|
} else {
|
|
return [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).password,
|
|
"onUpdate:modelValue": ($event) => unref(form).password = $event,
|
|
label: "\uBE44\uBC00\uBC88\uD638",
|
|
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
|
|
type: unref(isPasswordVisible) ? "text" : "password",
|
|
autocomplete: "password",
|
|
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
|
|
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent5, _scopeId4));
|
|
_push5(ssrRenderComponent(VCol, { cols: "12" }, {
|
|
default: withCtx((_5, _push6, _parent6, _scopeId5) => {
|
|
if (_push6) {
|
|
_push6(ssrRenderComponent(VBtn, {
|
|
block: "",
|
|
type: "button",
|
|
loading: unref(isLoading),
|
|
disabled: unref(isLoading),
|
|
onClick: handleLogin
|
|
}, {
|
|
default: withCtx((_6, _push7, _parent7, _scopeId6) => {
|
|
if (_push7) {
|
|
_push7(` \uB85C\uADF8\uC778 `);
|
|
} else {
|
|
return [
|
|
createTextVNode(" \uB85C\uADF8\uC778 ")
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent6, _scopeId5));
|
|
} else {
|
|
return [
|
|
createVNode(VBtn, {
|
|
block: "",
|
|
type: "button",
|
|
loading: unref(isLoading),
|
|
disabled: unref(isLoading),
|
|
onClick: handleLogin
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(" \uB85C\uADF8\uC778 ")
|
|
]),
|
|
_: 1
|
|
}, 8, ["loading", "disabled"])
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent5, _scopeId4));
|
|
} else {
|
|
return [
|
|
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
|
|
key: 0,
|
|
cols: "12"
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode(VAlert, {
|
|
type: "error",
|
|
variant: "tonal",
|
|
closable: "",
|
|
"onClick:close": ($event) => errorMessage.value = ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(toDisplayString(unref(errorMessage)), 1)
|
|
]),
|
|
_: 1
|
|
}, 8, ["onClick:close"])
|
|
]),
|
|
_: 1
|
|
})) : createCommentVNode("", true),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).user_id,
|
|
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
|
|
autofocus: "",
|
|
label: "\uC544\uC774\uB514",
|
|
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).password,
|
|
"onUpdate:modelValue": ($event) => unref(form).password = $event,
|
|
label: "\uBE44\uBC00\uBC88\uD638",
|
|
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
|
|
type: unref(isPasswordVisible) ? "text" : "password",
|
|
autocomplete: "password",
|
|
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
|
|
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VBtn, {
|
|
block: "",
|
|
type: "button",
|
|
loading: unref(isLoading),
|
|
disabled: unref(isLoading),
|
|
onClick: handleLogin
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(" \uB85C\uADF8\uC778 ")
|
|
]),
|
|
_: 1
|
|
}, 8, ["loading", "disabled"])
|
|
]),
|
|
_: 1
|
|
})
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent4, _scopeId3));
|
|
} else {
|
|
return [
|
|
createVNode(VRow, null, {
|
|
default: withCtx(() => [
|
|
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
|
|
key: 0,
|
|
cols: "12"
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode(VAlert, {
|
|
type: "error",
|
|
variant: "tonal",
|
|
closable: "",
|
|
"onClick:close": ($event) => errorMessage.value = ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(toDisplayString(unref(errorMessage)), 1)
|
|
]),
|
|
_: 1
|
|
}, 8, ["onClick:close"])
|
|
]),
|
|
_: 1
|
|
})) : createCommentVNode("", true),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).user_id,
|
|
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
|
|
autofocus: "",
|
|
label: "\uC544\uC774\uB514",
|
|
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).password,
|
|
"onUpdate:modelValue": ($event) => unref(form).password = $event,
|
|
label: "\uBE44\uBC00\uBC88\uD638",
|
|
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
|
|
type: unref(isPasswordVisible) ? "text" : "password",
|
|
autocomplete: "password",
|
|
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
|
|
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VBtn, {
|
|
block: "",
|
|
type: "button",
|
|
loading: unref(isLoading),
|
|
disabled: unref(isLoading),
|
|
onClick: handleLogin
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(" \uB85C\uADF8\uC778 ")
|
|
]),
|
|
_: 1
|
|
}, 8, ["loading", "disabled"])
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent3, _scopeId2));
|
|
} else {
|
|
return [
|
|
createVNode(VForm, {
|
|
onSubmit: withModifiers(handleLogin, ["prevent"])
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode(VRow, null, {
|
|
default: withCtx(() => [
|
|
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
|
|
key: 0,
|
|
cols: "12"
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode(VAlert, {
|
|
type: "error",
|
|
variant: "tonal",
|
|
closable: "",
|
|
"onClick:close": ($event) => errorMessage.value = ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(toDisplayString(unref(errorMessage)), 1)
|
|
]),
|
|
_: 1
|
|
}, 8, ["onClick:close"])
|
|
]),
|
|
_: 1
|
|
})) : createCommentVNode("", true),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).user_id,
|
|
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
|
|
autofocus: "",
|
|
label: "\uC544\uC774\uB514",
|
|
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).password,
|
|
"onUpdate:modelValue": ($event) => unref(form).password = $event,
|
|
label: "\uBE44\uBC00\uBC88\uD638",
|
|
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
|
|
type: unref(isPasswordVisible) ? "text" : "password",
|
|
autocomplete: "password",
|
|
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
|
|
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VBtn, {
|
|
block: "",
|
|
type: "button",
|
|
loading: unref(isLoading),
|
|
disabled: unref(isLoading),
|
|
onClick: handleLogin
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(" \uB85C\uADF8\uC778 ")
|
|
]),
|
|
_: 1
|
|
}, 8, ["loading", "disabled"])
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent2, _scopeId));
|
|
} else {
|
|
return [
|
|
createVNode(VCardItem, { class: "justify-center" }, {
|
|
default: withCtx(() => [
|
|
createVNode(_component_NuxtLink, {
|
|
to: "/",
|
|
class: "app-logo"
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode("div", {
|
|
class: "d-flex",
|
|
innerHTML: unref(logo)
|
|
}, null, 8, ["innerHTML"]),
|
|
createVNode("h1", { class: "app-logo-title" }, " sneat ")
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCardText, null, {
|
|
default: withCtx(() => [
|
|
createVNode("h4", { class: "text-h4 mb-1" }, " \uC74C\uC545 \uAD00\uB9AC \uC2DC\uC2A4\uD15C\u{1F44B}\u{1F3FB} "),
|
|
createVNode("p", { class: "mb-0" }, " \uACC4\uC815\uC5D0 \uB85C\uADF8\uC778\uD558\uC5EC \uAD00\uB9AC \uC2DC\uC2A4\uD15C\uC744 \uC2DC\uC791\uD558\uC138\uC694 ")
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCardText, null, {
|
|
default: withCtx(() => [
|
|
createVNode(VForm, {
|
|
onSubmit: withModifiers(handleLogin, ["prevent"])
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode(VRow, null, {
|
|
default: withCtx(() => [
|
|
unref(errorMessage) ? (openBlock(), createBlock(VCol, {
|
|
key: 0,
|
|
cols: "12"
|
|
}, {
|
|
default: withCtx(() => [
|
|
createVNode(VAlert, {
|
|
type: "error",
|
|
variant: "tonal",
|
|
closable: "",
|
|
"onClick:close": ($event) => errorMessage.value = ""
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(toDisplayString(unref(errorMessage)), 1)
|
|
]),
|
|
_: 1
|
|
}, 8, ["onClick:close"])
|
|
]),
|
|
_: 1
|
|
})) : createCommentVNode("", true),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).user_id,
|
|
"onUpdate:modelValue": ($event) => unref(form).user_id = $event,
|
|
autofocus: "",
|
|
label: "\uC544\uC774\uB514",
|
|
placeholder: "\uC544\uC774\uB514\uB97C \uC785\uB825\uD558\uC138\uC694"
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VTextField, {
|
|
id: ("useId" in _ctx ? _ctx.useId : unref(useId))(),
|
|
modelValue: unref(form).password,
|
|
"onUpdate:modelValue": ($event) => unref(form).password = $event,
|
|
label: "\uBE44\uBC00\uBC88\uD638",
|
|
placeholder: "\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7",
|
|
type: unref(isPasswordVisible) ? "text" : "password",
|
|
autocomplete: "password",
|
|
"append-inner-icon": unref(isPasswordVisible) ? "bx-hide" : "bx-show",
|
|
"onClick:appendInner": ($event) => isPasswordVisible.value = !unref(isPasswordVisible)
|
|
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "type", "append-inner-icon", "onClick:appendInner"])
|
|
]),
|
|
_: 1
|
|
}),
|
|
createVNode(VCol, { cols: "12" }, {
|
|
default: withCtx(() => [
|
|
createVNode(VBtn, {
|
|
block: "",
|
|
type: "button",
|
|
loading: unref(isLoading),
|
|
disabled: unref(isLoading),
|
|
onClick: handleLogin
|
|
}, {
|
|
default: withCtx(() => [
|
|
createTextVNode(" \uB85C\uADF8\uC778 ")
|
|
]),
|
|
_: 1
|
|
}, 8, ["loading", "disabled"])
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
]),
|
|
_: 1
|
|
})
|
|
];
|
|
}
|
|
}),
|
|
_: 1
|
|
}, _parent));
|
|
_push(`</div></div>`);
|
|
};
|
|
}
|
|
});
|
|
const _sfc_setup = _sfc_main.setup;
|
|
_sfc_main.setup = (props, ctx) => {
|
|
const ssrContext = useSSRContext();
|
|
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/login.vue");
|
|
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
};
|
|
|
|
export { _sfc_main as default };
|