- 웹훅 URL을 https://admin.youtooplay.com/webhook로 변경 - Nginx 리버스 프록시 설정 파일 추가 - 배포 가이드 업데이트
This commit is contained in:
862
.output/server/chunks/build/login-BwTR74Z-.mjs
Normal file
862
.output/server/chunks/build/login-BwTR74Z-.mjs
Normal file
@@ -0,0 +1,862 @@
|
||||
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 };
|
||||
Reference in New Issue
Block a user