모바일 호환

This commit is contained in:
2025-06-03 00:12:14 +09:00
parent b180b6d904
commit 15714037df
14 changed files with 123 additions and 14 deletions

View File

@@ -170,6 +170,23 @@ onUnmounted(() => {
} }
&.is-full { &.is-full {
@media (hover: none) and (pointer: coarse) {
.modal-content {
width: 100%;
max-width: 100% !important;
.modal-card {
width: 100%;
.modal-card-body {
padding: 0px !important;
}
}
}
.form-layout {
max-width: 100% !important;
}
}
.modal-content { .modal-content {
width: 100%; width: 100%;
max-width: 90%; max-width: 90%;

View File

@@ -33,6 +33,26 @@ const isScrolling = computed(() => {
</template> </template>
<style lang="scss"> <style lang="scss">
@media (hover: none) and (pointer: coarse) {
.company-nm {
display:none !important;
}
.right {
width: 17% !important;
}
.datatable-toolbar {
.button {
padding: 8px 12px !important;
span:nth-child(1) {
display:none;
}
}
}
}
.navbar-navbar { .navbar-navbar {
position: fixed; position: fixed;
top: 0; top: 0;
@@ -400,6 +420,7 @@ const isScrolling = computed(() => {
} }
} }
/* ========================================================================== /* ==========================================================================
4. Webapp Navbar Dark mode 4. Webapp Navbar Dark mode
========================================================================== */ ========================================================================== */
@@ -641,7 +662,7 @@ const isScrolling = computed(() => {
a { a {
&:hover { &:hover {
background-color:white !important; background-color:transparent !important;
} }
} }

View File

@@ -128,7 +128,7 @@ watch(changePage, (newParams) => {
</template> </template>
</VDatePicker> </VDatePicker>
</div> </div>
<div style="transform: translateY(15px)">~</div> <div class="mobile-hide" style="transform: translateY(15px)">~</div>
<div class="column is-6"> <div class="column is-6">
<VDatePicker <VDatePicker
v-model.string="params.regEdt" v-model.string="params.regEdt"
@@ -156,7 +156,7 @@ watch(changePage, (newParams) => {
</VField> </VField>
</div> </div>
<div class="column is-1" style="position:relative;"> <div class="column is-1" style="position:relative;">
<div style="padding-top:20px;"> <div style="padding-top:25px;">
<VButtons> <VButtons>
<VButton <VButton
color="primary" color="primary"
@@ -241,6 +241,12 @@ watch(changePage, (newParams) => {
</template> </template>
<style lang="scss"> <style lang="scss">
@media (width <= 767px) {
.mobile-hide {
display:none;
}
}
.is-navbar { .is-navbar {
.datatable-toolbar { .datatable-toolbar {
padding-top: 30px; padding-top: 30px;

View File

@@ -107,7 +107,7 @@ watch(changePage, (newParams) => {
</VField> </VField>
</div> </div>
<div class="column is-1" style="position:relative;"> <div class="column is-1" style="position:relative;">
<div style="padding-top:20px;"> <div style="padding-top:25px;">
<VButtons> <VButtons>
<VButton <VButton
color="primary" color="primary"

View File

@@ -100,7 +100,8 @@ function onRePassword() {
@keydown.enter.prevent="toggle" @keydown.enter.prevent="toggle"
@click="toggle" @click="toggle"
> >
<VAvatar picture="/images/avatars/svg/person-2.svg" /> <VAvatar class="light-person" picture="/images/avatars/svg/person-2.svg" />
<VAvatar class="dark-person" picture="/images/avatars/svg/person-1.svg" />
</a> </a>
</div> </div>
<div class="company-nm" style="color:var(--modal-text-reverse)">{{ biz.compNm }}</div> <div class="company-nm" style="color:var(--modal-text-reverse)">{{ biz.compNm }}</div>
@@ -396,6 +397,25 @@ function onRePassword() {
</VDropdown> </VDropdown>
</template> </template>
<style lang="scss">
@media (width <= 767px) {
.avatar {
width:30px !important;
height:30px !important;
}
.navbar-brand {
img {
transform: translateY(2px);
}
}
.page-title {
padding-left: 15px;
}
}
</style>
<style scoped lang="scss"> <style scoped lang="scss">
.profile-dropdown { .profile-dropdown {
> img { > img {
@@ -453,8 +473,30 @@ function onRePassword() {
} }
} }
} }
.light-person {
display:block;
}
.dark-person {
display:none;
}
@media screen and (width <= 1380) {
.light-person {
display:none;
}
.dark-person {
display:block;
}
}
.is-dark { .is-dark {
.light-person {
display:none;
}
.dark-person {
display:block;
}
.profile-dropdown { .profile-dropdown {
.dropdown-content, :deep(.dropdown-content) { .dropdown-content, :deep(.dropdown-content) {
.dropdown-head { .dropdown-head {

View File

@@ -30,7 +30,7 @@ const links = ref<NavbarItem[]>([
<template #logo> <template #logo>
<RouterLink <RouterLink
to="/navbar/dashboards" to="/navbar/layouts/contract-list"
> >
<AnimatedLogo <AnimatedLogo
width="38px" width="38px"

View File

@@ -23,7 +23,7 @@ const links = ref<SidebarItem[]>([
children: [ children: [
{ {
label: 'Personal V1', label: 'Personal V1',
to: '/sidebar/dashboards', to: '/sidebar/layouts/contract-list',
icon: 'lnil lnil-analytics-alt-1', icon: 'lnil lnil-analytics-alt-1',
}, },
{ {

View File

@@ -45,7 +45,7 @@ const handleLogin = async () => {
userSession.setUser(result) userSession.setUser(result)
notyf.dismissAll() notyf.dismissAll()
notyf.primary(`환영합니다. ${result.repNm}`) notyf.primary(`환영합니다. ${result.repNm}`)
router.push('/navbar/dashboards') router.push('/navbar/layouts/contract-list')
isLoading.value = false isLoading.value = false
}).catch((res) => { }).catch((res) => {
notyf.error(res.response._data.body) notyf.error(res.response._data.body)

View File

@@ -1440,6 +1440,22 @@ useHead({
} }
@media only screen and (width <= 767px) { @media only screen and (width <= 767px) {
.signup-footer {
position:fixed;
bottom: 10px !important;
width: 50px;
}
.signup-nav {
background-color: white;
}
.is-dark {
.signup-nav {
background-color: color-mix(in oklab, var(--dark-sidebar), white 10%);
}
}
.signup-steps { .signup-steps {
.steps-container { .steps-container {
padding: 0 1rem; padding: 0 1rem;

View File

@@ -7,11 +7,11 @@ meta:
const pageTitle = useVueroContext<string>('page-title') const pageTitle = useVueroContext<string>('page-title')
onMounted(() => { onMounted(() => {
pageTitle.value = '입찰신청' pageTitle.value = '가격조사'
}) })
useHead({ useHead({
title: '소액계약관리 - 입찰신청', title: '소액계약관리 - 가격조사',
}) })
</script> </script>

View File

@@ -7,11 +7,11 @@ meta:
const pageTitle = useVueroContext<string>('page-title') const pageTitle = useVueroContext<string>('page-title')
onMounted(() => { onMounted(() => {
pageTitle.value = '입찰내역' pageTitle.value = '신청내역'
}) })
useHead({ useHead({
title: '소액계약관리 - 입찰내역', title: '소액계약관리 - 신청내역',
}) })
</script> </script>

View File

@@ -2,7 +2,7 @@
const router = useRouter() const router = useRouter()
onMounted(() => { onMounted(() => {
router.push('/sidebar/dashboards') router.push('/sidebar/layouts/contract-list')
}) })
</script> </script>

View File

@@ -67,7 +67,7 @@ export default definePlugin(async ({ router, pinia, event }) => {
} }
else { else {
if (userSession.user !== undefined) { if (userSession.user !== undefined) {
router.replace('/navbar/dashboards') router.replace('/navbar/layouts/contract-list')
} }
} }
}) })

View File

@@ -12,6 +12,12 @@
background-color: var(--primary); background-color: var(--primary);
color: #fff !important; color: #fff !important;
} }
@media (width <= 767px) {
.label {
width: 100%;
}
}
.control { .control {
padding: 10px 14px !important; padding: 10px 14px !important;
} }
@@ -131,6 +137,7 @@ a.mouse-pointer {
label { label {
color: var(--modal-text) !important; color: var(--modal-text) !important;
font-weight:bold !important; font-weight:bold !important;
flex-shrink: 0;
} }
p { p {
font-weight: lighter !important; font-weight: lighter !important;