edit some things in landing page

This commit is contained in:
2026-08-19 11:31:30 +03:30
parent 313beb13f8
commit 7e76331796
4 changed files with 98 additions and 50 deletions
+6 -2
View File
@@ -1,5 +1,5 @@
<script lang="ts" setup> <script lang="ts" setup>
import { getLoginAppUrl, getLoginInstallPwaUrl } from '@/utils/config' import { getLoginAppUrl, getLoginInstallPwaUrl, getLoginRegisterUrl } from '@/utils/config'
definePageMeta({ definePageMeta({
layout: false, layout: false,
@@ -8,7 +8,11 @@ definePageMeta({
const route = useRoute() const route = useRoute()
const target = const target =
route.query.installPwa === 'true' ? getLoginInstallPwaUrl() : getLoginAppUrl() route.query.installPwa === 'true'
? getLoginInstallPwaUrl()
: route.query.register === 'true'
? getLoginRegisterUrl()
: getLoginAppUrl()
await navigateTo(target, { external: true }) await navigateTo(target, { external: true })
</script> </script>
+17 -5
View File
@@ -39,16 +39,28 @@ export function getLoginAppUrl() {
/** صفحه Login اپ اصلی با فلگ نصب PWA */ /** صفحه Login اپ اصلی با فلگ نصب PWA */
export function getLoginInstallPwaUrl() { export function getLoginInstallPwaUrl() {
try { try {
const loginUrl = getLoginAppUrl() return `${getLoginAppOrigin()}/login?installPwa=true`
const origin = import.meta.client
? new URL(loginUrl, window.location.origin).origin
: new URL(loginUrl).origin
return `${origin}/login?installPwa=true`
} catch { } catch {
return 'https://app.boursemes.com/login?installPwa=true' return 'https://app.boursemes.com/login?installPwa=true'
} }
} }
/** صفحه Login اپ اصلی روی بخش ثبت‌نام */
export function getLoginRegisterUrl() {
try {
return `${getLoginAppOrigin()}/login?register=true`
} catch {
return 'https://app.boursemes.com/login?register=true'
}
}
function getLoginAppOrigin() {
const loginUrl = getLoginAppUrl()
return import.meta.client
? new URL(loginUrl, window.location.origin).origin
: new URL(loginUrl).origin
}
/** boursecu-only branch */ /** boursecu-only branch */
export function isBoursecuProject() { export function isBoursecuProject() {
return true return true
@@ -24,7 +24,7 @@
<button type="button" class="dlanding-nav__ghost" @click="goToLoginApp"> <button type="button" class="dlanding-nav__ghost" @click="goToLoginApp">
ورود ورود
</button> </button>
<button type="button" class="dlanding-nav__primary" @click="goToLoginApp"> <button type="button" class="dlanding-nav__primary" @click="goToRegisterApp">
ثبت‌نام ثبت‌نام
</button> </button>
</div> </div>
@@ -435,7 +435,7 @@
</li> </li>
</ol> </ol>
<button type="button" class="dlanding-steps__cta" @click="goToLoginApp"> <button type="button" class="dlanding-steps__cta" @click="goToRegisterApp">
همین حالا ثبت‌نام کنید همین حالا ثبت‌نام کنید
<BasicIcon icon="vuesax-linear:arrow-left" size="16" color="#ffffff" class="dlanding-steps__cta-icon" /> <BasicIcon icon="vuesax-linear:arrow-left" size="16" color="#ffffff" class="dlanding-steps__cta-icon" />
</button> </button>
@@ -786,7 +786,7 @@
<button <button
type="button" type="button"
class="dlanding-finalcta__secondary" class="dlanding-finalcta__secondary"
@click="goToLoginApp" @click="goToRegisterApp"
> >
<BasicIcon icon="vuesax-linear:profile-add" size="16" color="#ffffff" /> <BasicIcon icon="vuesax-linear:profile-add" size="16" color="#ffffff" />
ایجاد حساب کاربری ایجاد حساب کاربری
@@ -822,7 +822,7 @@
<div class="dlanding-footer__brand"> <div class="dlanding-footer__brand">
<img :src="brandLogo" :alt="projectName" class="dlanding-footer__logo" /> <img :src="brandLogo" :alt="projectName" class="dlanding-footer__logo" />
<p class="dlanding-footer__brand-text"> <p class="dlanding-footer__brand-text">
بورس مس پلتفرم خرید و فروش آنلاین مس، با پشتوانه تولید کننده واقعی کالای واقعی بورس مس پلتفرم خرید و فروش آنلاین مس، با پشتوانه تولید کننده واقعی
</p> </p>
<div class="dlanding-footer__socials" aria-label="شبکه‌های اجتماعی"> <div class="dlanding-footer__socials" aria-label="شبکه‌های اجتماعی">
<a href="#" class="dlanding-footer__social" aria-label="اینستاگرام"> <a href="#" class="dlanding-footer__social" aria-label="اینستاگرام">
@@ -869,13 +869,17 @@
<div class="dlanding-footer__bottom"> <div class="dlanding-footer__bottom">
<div class="dlanding-footer__contacts"> <div class="dlanding-footer__contacts">
<span class="dlanding-footer__contact dlanding-footer__contact--phone" dir="ltr"> <span class="dlanding-footer__contact">
<BasicIcon icon="vuesax-linear:call" size="14" color="#c9895d" />
021 - 1234 5678
</span>
<span class="dlanding-footer__contact" dir="rtl">
<BasicIcon icon="vuesax-linear:location" size="14" color="#c9895d" /> <BasicIcon icon="vuesax-linear:location" size="14" color="#c9895d" />
مشهد، ایران <span class="dlanding-footer__contact-text">ایران، خراسان رضوی،مشهد،برج آلتون،طبقه ۱۹ واحد ۴</span>
</span>
<span class="dlanding-footer__contact dlanding-footer__contact--postal">
<BasicIcon icon="vuesax-linear:directbox-default" size="14" color="#c9895d" />
<span class="dlanding-footer__contact-text">کد پستی : <span dir="ltr">9138831969</span></span>
</span>
<span class="dlanding-footer__contact dlanding-footer__contact--phone">
<BasicIcon icon="vuesax-linear:call" size="14" color="#c9895d" />
<span class="dlanding-footer__contact-text">+98-513-8480890</span>
</span> </span>
</div> </div>
<p class="dlanding-footer__copy">© ۲۰۲۶ بورس مس. تمام حقوق محفوظ است.</p> <p class="dlanding-footer__copy">© ۲۰۲۶ بورس مس. تمام حقوق محفوظ است.</p>
@@ -896,7 +900,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { computed, defineAsyncComponent, defineComponent, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue' import { computed, defineAsyncComponent, defineComponent, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue' import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
import { getLoginAppUrl } from '@/utils/config' import { getLoginAppUrl, getLoginRegisterUrl } from '@/utils/config'
import heroPattern from '@/assets/img/landing-hero-pattern.svg' import heroPattern from '@/assets/img/landing-hero-pattern.svg'
import brandLogo from '@/assets/img/landing-navbar-logo.png' import brandLogo from '@/assets/img/landing-navbar-logo.png'
import appPhonesImg from '@/assets/img/landing-app-phones.png' import appPhonesImg from '@/assets/img/landing-app-phones.png'
@@ -1445,6 +1449,12 @@ function goToLoginApp() {
window.open(url, '_blank', 'noopener,noreferrer') window.open(url, '_blank', 'noopener,noreferrer')
} }
function goToRegisterApp() {
if (!import.meta.client) return
const url = getLoginRegisterUrl()
window.open(url, '_blank', 'noopener,noreferrer')
}
function syncBodyScrollLock(locked: boolean) { function syncBodyScrollLock(locked: boolean) {
if (!import.meta.client) return if (!import.meta.client) return
document.documentElement.classList.toggle('dlanding-menu-open', locked) document.documentElement.classList.toggle('dlanding-menu-open', locked)
@@ -2501,12 +2501,17 @@ body.dlanding-menu-open {
direction: rtl; direction: rtl;
unicode-bidi: isolate; unicode-bidi: isolate;
&--phone { &--phone,
&--postal {
direction: ltr; direction: ltr;
flex-direction: row-reverse; flex-direction: row-reverse;
} }
} }
&__contact-text {
min-width: 0;
}
&__copy { &__copy {
margin: 0; margin: 0;
color: #94a3b8; color: #94a3b8;
@@ -3707,42 +3712,50 @@ body.dlanding-menu-open {
padding-top: 0; padding-top: 0;
border-top: none; border-top: none;
flex-direction: column; flex-direction: column;
align-items: flex-end; align-items: flex-start;
justify-content: flex-start; justify-content: flex-start;
gap: 12px; gap: 12px;
text-align: left; text-align: right;
} }
&__contacts { &__contacts {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: flex-end; align-items: stretch;
width: auto; width: 100%;
max-width: 100%; max-width: 100%;
gap: 12px; gap: 12px;
} }
&__contact { &__contact {
flex-direction: row-reverse; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;
width: fit-content; align-items: flex-start;
width: 100%;
max-width: 100%; max-width: 100%;
color: #64748b; color: #64748b;
direction: rtl; direction: ltr;
&--phone { &--phone,
&--postal {
direction: ltr; direction: ltr;
flex-direction: row-reverse; flex-direction: row;
} }
// vertical order: location then phone > .noname-icon {
&:nth-child(1) { flex-shrink: 0;
order: 2; margin-top: 2px;
} }
}
&:nth-child(2) { &__contact-text {
order: 1; flex: 1 1 auto;
} text-align: right;
direction: rtl;
}
&__contact--phone &__contact-text {
direction: ltr;
} }
&__copy { &__copy {
@@ -3750,7 +3763,7 @@ body.dlanding-menu-open {
width: 100%; width: 100%;
color: #64748b; color: #64748b;
font-size: 13px; font-size: 13px;
text-align: left; text-align: right;
} }
&__cols { &__cols {
@@ -4469,43 +4482,52 @@ body.dlanding-menu-open {
padding-top: 0; padding-top: 0;
border-top: none; border-top: none;
flex-direction: column; flex-direction: column;
align-items: flex-end; align-items: flex-start;
justify-content: flex-start; justify-content: flex-start;
gap: 10px; gap: 10px;
text-align: left; text-align: right;
} }
&__contacts { &__contacts {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: flex-end; align-items: stretch;
flex-wrap: nowrap; flex-wrap: nowrap;
width: auto; width: 100%;
max-width: 100%; max-width: 100%;
gap: 10px; gap: 10px;
} }
&__contact { &__contact {
flex-direction: row-reverse; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;
width: fit-content; align-items: flex-start;
width: 100%;
max-width: 100%; max-width: 100%;
color: #64748b; color: #64748b;
font-size: 12px; font-size: 12px;
direction: rtl; direction: ltr;
&--phone { &--phone,
&--postal {
direction: ltr; direction: ltr;
flex-direction: row-reverse; flex-direction: row;
} }
&:nth-child(1) { > .noname-icon {
order: 2; flex-shrink: 0;
margin-top: 2px;
} }
}
&:nth-child(2) { &__contact-text {
order: 1; flex: 1 1 auto;
} text-align: right;
direction: rtl;
}
&__contact--phone &__contact-text {
direction: ltr;
} }
&__copy { &__copy {
@@ -4513,7 +4535,7 @@ body.dlanding-menu-open {
width: 100%; width: 100%;
color: #64748b; color: #64748b;
font-size: 11.5px; font-size: 11.5px;
text-align: left; text-align: right;
} }
&__cols { &__cols {