diff --git a/src/App.vue b/src/App.vue index a4c76f4..6735d88 100644 --- a/src/App.vue +++ b/src/App.vue @@ -23,28 +23,44 @@ -
-
- - -
-
- - -
+
+
- +
-
نسخه: {{ pkg.version }}
+
+ نسخه: {{ pkg.version }} +
- +
@@ -107,17 +123,19 @@ import img_bottomGradiant from '@/views/login/assets/img/gr_bottom_white.svg' import {DotLottieVue} from '@lottiefiles/dotlottie-vue' import BasicButton from '@/components/BasicPacks/BasicButton.vue' import {useConfigStore} from "@/store/configStore"; +import {getProjectFontFamily, getProjectLoginLogo, getProjectSplashBackground, isBoursecuProject} from "@/utils/config"; import {ConfigProvider as AConfigProvider} from 'ant-design-vue' import BasicIcon from "@/components/BasicPacks/BasicIcon.vue"; const {offlineReady, needRefresh, updateServiceWorker} = useRegisterSW() const config = useConfigStore() -const indicator = h(LoadingOutlined, { +const splashIndicator = computed(() => h(LoadingOutlined, { style: { - fontSize: '24px' + fontSize: '24px', + color: isBoursecuProject() ? '#ffffff' : undefined, }, spin: true -}) +})) const showSplash = ref(true) const popVisible = ref(false) @@ -130,6 +148,7 @@ const antTheme = computed(() => { colorLink: config.config.color, colorLinkActive: config.config.color, colorLinkHover: config.config.color, + fontFamily: getProjectFontFamily(), }, } }) diff --git a/src/assets/css/fonts.less b/src/assets/css/fonts.less index 2615ae1..3b28872 100644 --- a/src/assets/css/fonts.less +++ b/src/assets/css/fonts.less @@ -42,3 +42,45 @@ font-style: normal; } +@font-face { + font-family: 'dana'; + src: url("../fonts/Dana/Dana-Regular.ttf") format("truetype"); + font-weight: 400; + font-style: normal; +} + +@font-face { + font-family: 'dana'; + src: url("../fonts/Dana/Dana-Light.ttf") format("truetype"); + font-weight: 300; + font-style: normal; +} + +@font-face { + font-family: 'dana'; + src: url("../fonts/Dana/Dana-Medium.ttf") format("truetype"); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'dana'; + src: url("../fonts/Dana/Dana-DemiBold.ttf") format("truetype"); + font-weight: 600; + font-style: normal; +} + +@font-face { + font-family: 'dana'; + src: url("../fonts/Dana/Dana-Bold.ttf") format("truetype"); + font-weight: 700; + font-style: normal; +} + +@font-face { + font-family: 'dana'; + src: url("../fonts/Dana/Dana-Black.ttf") format("truetype"); + font-weight: 900; + font-style: normal; +} + diff --git a/src/assets/css/main.less b/src/assets/css/main.less index 0e3a115..504e09b 100644 --- a/src/assets/css/main.less +++ b/src/assets/css/main.less @@ -7,10 +7,27 @@ html { } body { - font-family: @prefixCls-font-family !important; + font-family: var(--App-font-family) !important; background-color: @prefixCls-background-color !important; //color:#555 !important; } + +html.font-dana, +html.font-dana body, +html.font-dana .ant-btn, +html.font-dana .ant-input, +html.font-dana .ant-select, +html.font-dana .ant-form, +html.font-dana .ant-table, +html.font-dana .ant-modal, +html.font-dana .ant-drawer, +html.font-dana .ant-picker, +html.font-dana .van-button, +html.font-dana .van-dialog, +html.font-dana .van-tabbar, +html.font-dana .van-nav-bar { + font-family: var(--App-font-family) !important; +} body { color-scheme: only light; @apply flex justify-center relative; diff --git a/src/assets/css/var.less b/src/assets/css/var.less index d742695..9aca3ca 100644 --- a/src/assets/css/var.less +++ b/src/assets/css/var.less @@ -10,4 +10,5 @@ --App-primary-color: #0A1B37; --App-secondary-color: #e0be7f; --App-background-color: #ffffff; + --App-font-family: 'iran-sans', sans-serif; } \ No newline at end of file diff --git a/src/assets/fonts/Dana/Dana-Black.ttf b/src/assets/fonts/Dana/Dana-Black.ttf new file mode 100644 index 0000000..09128c5 Binary files /dev/null and b/src/assets/fonts/Dana/Dana-Black.ttf differ diff --git a/src/assets/fonts/Dana/Dana-Bold.ttf b/src/assets/fonts/Dana/Dana-Bold.ttf new file mode 100644 index 0000000..57013c7 Binary files /dev/null and b/src/assets/fonts/Dana/Dana-Bold.ttf differ diff --git a/src/assets/fonts/Dana/Dana-DemiBold.ttf b/src/assets/fonts/Dana/Dana-DemiBold.ttf new file mode 100644 index 0000000..1c7d1de Binary files /dev/null and b/src/assets/fonts/Dana/Dana-DemiBold.ttf differ diff --git a/src/assets/fonts/Dana/Dana-ExtraBold.ttf b/src/assets/fonts/Dana/Dana-ExtraBold.ttf new file mode 100644 index 0000000..32aa27b Binary files /dev/null and b/src/assets/fonts/Dana/Dana-ExtraBold.ttf differ diff --git a/src/assets/fonts/Dana/Dana-ExtraLight.ttf b/src/assets/fonts/Dana/Dana-ExtraLight.ttf new file mode 100644 index 0000000..435016f Binary files /dev/null and b/src/assets/fonts/Dana/Dana-ExtraLight.ttf differ diff --git a/src/assets/fonts/Dana/Dana-Light.ttf b/src/assets/fonts/Dana/Dana-Light.ttf new file mode 100644 index 0000000..6ab3d11 Binary files /dev/null and b/src/assets/fonts/Dana/Dana-Light.ttf differ diff --git a/src/assets/fonts/Dana/Dana-Medium.ttf b/src/assets/fonts/Dana/Dana-Medium.ttf new file mode 100644 index 0000000..75fda24 Binary files /dev/null and b/src/assets/fonts/Dana/Dana-Medium.ttf differ diff --git a/src/assets/fonts/Dana/Dana-Regular.ttf b/src/assets/fonts/Dana/Dana-Regular.ttf new file mode 100644 index 0000000..93200a1 Binary files /dev/null and b/src/assets/fonts/Dana/Dana-Regular.ttf differ diff --git a/src/assets/fonts/Dana/Dana-Thin.ttf b/src/assets/fonts/Dana/Dana-Thin.ttf new file mode 100644 index 0000000..a958703 Binary files /dev/null and b/src/assets/fonts/Dana/Dana-Thin.ttf differ diff --git a/src/assets/fonts/Dana/Dana-UltraBold.ttf b/src/assets/fonts/Dana/Dana-UltraBold.ttf new file mode 100644 index 0000000..c5bd1b2 Binary files /dev/null and b/src/assets/fonts/Dana/Dana-UltraBold.ttf differ diff --git a/src/assets/img/boursemes_logofull.png b/src/assets/img/boursemes_logofull.png new file mode 100644 index 0000000..e6a4be8 Binary files /dev/null and b/src/assets/img/boursemes_logofull.png differ diff --git a/src/main.ts b/src/main.ts index 696dcfc..b9fef2a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -15,7 +15,7 @@ import VueLazyLoad from 'vue3-lazyload' import { getMe } from '@/api/me' import type { NavigationGuardNext, RouteLocationNormalized } from 'vue-router' import { useAuthStore } from '@/store/useAuthStore' -import {getConfigApp} from "@/utils/config"; +import {applyProjectFont, getConfigApp} from "@/utils/config"; const app = createApp(App) @@ -192,6 +192,8 @@ app.mount('#app') // } nextTick(() => { + applyProjectFont() + const color = window.__APP_CONFIG__?.user?.color const secondary_color = window.__APP_CONFIG__?.user?.secondary_color diff --git a/src/utils/config.ts b/src/utils/config.ts index 5a7135b..3c5197b 100644 --- a/src/utils/config.ts +++ b/src/utils/config.ts @@ -1,3 +1,4 @@ +import boursecuLogo from '@/assets/img/boursemes_logofull.png' export function getConfigApp(key: string) { const config = window.__APP_CONFIG__ ? window.__APP_CONFIG__.user:{} @@ -7,3 +8,81 @@ export function getConfigApp(key: string) { } return null } + +export function isBoursecuProject() { + return getConfigApp('name') === 'boursecu' +} + +export function getProjectLoginLogo(avatar?: string | null) { + if (isBoursecuProject()) { + return boursecuLogo + } + return avatar ?? getConfigApp('avatar') +} + +export function getProjectLoginTaglineLines() { + if (!isBoursecuProject()) { + return null + } + + return [ + 'بورس مس', + 'مرجع هوشمند معاملات و سرمایه‌گذاری در صنعت مس', + ] +} + +export function getProjectSplashBackground() { + return isBoursecuProject() ? '#133050' : '#ffffff' +} + +export function getProjectFontFamily() { + return getConfigApp('name') === 'boursecu' ? "'dana', sans-serif" : "'iran-sans', sans-serif" +} + +export function applyProjectFont() { + document.documentElement.style.setProperty('--App-font-family', getProjectFontFamily()) + if (getConfigApp('name') === 'boursecu') { + document.documentElement.classList.add('font-dana') + } +} + +export function getReferralShareTitle(projectName?: string | null) { + return projectName ?? getConfigApp('name_fa') ?? getConfigApp('name') ?? 'طلا' +} + +export function getReferralShareText(options: { + userName?: string | null + projectName?: string | null + referralId?: string | number | null +}) { + const userName = options.userName ?? '' + const referralId = options.referralId ?? '' + const link = `${window.location.hostname}/login?id=${referralId}` + const marketText = options.projectName + ? `بازار طلای ${options.projectName}` + : 'بازار طلا' + + if (isBoursecuProject()) { + return `مس؛ فلز آینده جهان + +⭐️ امروز در آینده مس سرمایه‌گذاری کن؛ ثمره آن را در سال‌های پیش رو برداشت کن! + +رشد صنایع انرژی پاک، خودروهای برقی و زیرساخت‌های نوین، تقاضا برای مس را در سال‌های آینده افزایش خواهد داد. + +با سرمایه‌گذاری تدریجی و مستمر در بازار مس، از رشد بلندمدت یکی از مهم‌ترین فلزات استراتژیک جهان بهره‌مند شوید. + +این دعوت‌نامه از طرف «${userName}» برای شما ارسال شده است تا شما نیز از فرصت‌های سرمایه‌گذاری در بورس مس جا نمانید. + +برای مشاهده قیمت‌ها، تحلیل بازار و تکمیل ثبت‌نام، روی لینک زیر کلیک کنید + +${link}` + } + + return `⭐️الان طلا بخر؛ آخر ماه سودشو ببر! +با خرید طلای آبشده در مقدارهای کم ولی مستمر، سود بیشتری ببر! + +این دعوت نامه از طرف "${userName}" عزیز برای شما ارسال شده تا شما هم از ${marketText} جا نمونید. +روی لینک زیر کلیک کنید و ثبت نام خود را تکمیل کنید. + +${link}` +} diff --git a/src/views/base/about/aboutContent.ts b/src/views/base/about/aboutContent.ts new file mode 100644 index 0000000..6ea80d4 --- /dev/null +++ b/src/views/base/about/aboutContent.ts @@ -0,0 +1,68 @@ +export interface AboutSection { + title?: string + paragraphs?: string[] + items?: string[] +} + +export function getAboutSections(nameProject: string, isBoursecu: boolean): AboutSection[] { + if (isBoursecu) { + return [ + { + title: 'درباره بورس مس', + paragraphs: [ + 'بورس مس یک پلتفرم تخصصی برای تسهیل معاملات، کشف قیمت، تبادل اطلاعات و ایجاد ارتباط مستقیم میان فعالان زنجیره ارزش مس است. ما با هدف شفاف‌سازی بازار، کاهش واسطه‌های غیرضروری و افزایش دسترسی به اطلاعات معتبر، بستری هوشمند و امن را برای خریداران، فروشندگان، تولیدکنندگان، بازرگانان و سرمایه‌گذاران فراهم کرده‌ایم.', + 'در بازاری که اطلاعات پراکنده، عدم شفافیت قیمت‌ها و دشواری دسترسی به تأمین‌کنندگان معتبر از مهم‌ترین چالش‌ها محسوب می‌شود، بورس مس تلاش می‌کند با بهره‌گیری از فناوری‌های نوین، فرآیند معامله و سرمایه‌گذاری در صنعت مس را ساده‌تر، سریع‌تر و قابل اعتمادتر کند.', + 'ما باور داریم که مس، فلز آینده جهان است؛ فلزی که نقش کلیدی در توسعه زیرساخت‌ها، انرژی‌های تجدیدپذیر، خودروهای برقی، صنایع الکترونیک و رشد اقتصادی ایفا می‌کند. از این رو، ایجاد یک اکوسیستم تخصصی برای فعالان این صنعت را مأموریت اصلی خود می‌دانیم.', + ], + }, + { + title: 'چشم‌انداز ما', + paragraphs: [ + 'تبدیل شدن به معتبرترین مرجع دیجیتال معاملات، اطلاعات بازار و خدمات تخصصی صنعت مس در ایران و منطقه.', + ], + }, + { + title: 'مأموریت ما', + items: [ + 'افزایش شفافیت در بازار مس', + 'تسهیل ارتباط میان خریداران و فروشندگان', + 'فراهم‌سازی دسترسی به قیمت‌ها و اطلاعات معتبر بازار', + 'توسعه ابزارهای نوین سرمایه‌گذاری و معامله', + 'حمایت از رشد تجارت داخلی و بین‌المللی محصولات مسی', + ], + }, + { + title: 'ارزش‌های ما', + items: ['شفافیت', 'اعتماد', 'نوآوری', 'مسئولیت‌پذیری', 'توسعه پایدار'], + }, + { + paragraphs: [ + 'بورس مس تنها یک پلتفرم معاملاتی نیست؛ بلکه بستری برای شکل‌گیری شبکه‌ای قدرتمند از فعالان صنعت مس است که با همکاری، دانش و اعتماد متقابل، آینده‌ای روشن‌تر برای این صنعت استراتژیک رقم می‌زنند.', + ], + }, + ] + } + + return [ + { + paragraphs: [ + 'طلا علاوه بر کاربرد در ساخت زیورآلات، از دوران کهن به عنوان یک فلز ارزشمند و دارایی مقاوم در برابر تورم شناخته می‌شود، به طوری که سرمایه‌گذاران حرفه‌ای همواره بخشی از سبد سرمایه‌گذاری‌شان را به طلا اختصاص می‌دهند.', + ], + }, + { + paragraphs: [ + `با وجود گسترش فناوری‌های نوین در همه حوزه‌ها، ما در شرکت پخش طلای حاجی ابوالفتح با تلفیق تجربه سنتی خود در بازار طلا و با دانش تخصصی خود و با بهره‌گیری از سوابق موفق قبلی در حوزه فینتک، اقدام به ایجاد ${nameProject} نمودیم.`, + ], + }, + { + paragraphs: [ + `مهم‌ترین ارزش پیشنهادی ${nameProject}، امکان پس انداز تدریجی طلا با سرمایه‌های خرد و بدون پرداخت هزینه‌های جانبی است و در این راستا ${nameProject} تمام تلاش خود را نموده است تا از ابتدای سال 1401 با رونمایی محصول اولیه، برای همه افراد با هر سطحی از دارایی، بستری امن و مطمئن ایجاد نماید.`, + ], + }, + { + paragraphs: [ + `علاوه بر این ${nameProject} به عنوان یک واحد فناور از سال 1403 با رونمایی نسخه کاملا آنلاین و نرم افزاری وارد فاز جدیدی از خرید و فروش طلای آب شده، شده است.`, + ], + }, + ] +} diff --git a/src/views/base/about/index.vue b/src/views/base/about/index.vue index bb26bc1..1cfcfc1 100644 --- a/src/views/base/about/index.vue +++ b/src/views/base/about/index.vue @@ -13,29 +13,28 @@
-
+
-
-
- طلا علاوه بر کاربرد در ساخت زیورآلات، از دوران کهن به عنوان یک فلز ارزشمند و دارایی - مقاوم در برابر تورم شناخته می‌شود، به طوری که سرمایه‌گذاران حرفه‌ای همواره بخشی از - سبد سرمایه‌گذاری‌شان را به طلا اختصاص می‌دهند. -
-
- با وجود گسترش فناوری‌های نوین در همه حوزه‌ها، ما در شرکت پخش طلای حاجی ابوالفتح با - تلفیق تجربه سنتی خود در بازار طلا و با دانش تخصصی خود و با بهره‌گیری از سوابق موفق - قبلی در حوزه فینتک، اقدام به ایجاد {{ nameProject }} نمودیم. -
-
- مهم‌ترین ارزش پیشنهادی {{ nameProject }}، امکان پس انداز تدریجی طلا با سرمایه‌های خرد و بدون - پرداخت هزینه‌های جانبی است و در این راستا {{ nameProject }} تمام تلاش خود را نموده است تا از - ابتدای سال 1401 با رونمایی محصول اولیه، برای همه افراد با هر سطحی از دارایی، بستری - امن و مطمئن ایجاد نماید. -
-
- علاوه بر این {{ nameProject }} به عنوان یک واحد فناور از سال 1403 با رونمایی نسخه کاملا آنلاین - و نرم افزاری وارد فاز جدیدی از خرید و فروش طلای آب شده، شده است. -
+
@@ -63,7 +62,7 @@ -