Integrate remote logo changes with local SSE and wallet assets work.
This commit is contained in:
2026-06-27 16:54:32 +03:30
5 changed files with 53 additions and 12 deletions
+16 -8
View File
@@ -8,24 +8,29 @@ export {}
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
AButton: typeof import('ant-design-vue/es')['Button'] AButton: typeof import('ant-design-vue/es')['Button']
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
ActionSheetButtons: typeof import('./src/components/BasicPacks/ActionSheetButtons.vue')['default']
ADivider: typeof import('ant-design-vue/es')['Divider'] ADivider: typeof import('ant-design-vue/es')['Divider']
AForm: typeof import('ant-design-vue/es')['Form'] AForm: typeof import('ant-design-vue/es')['Form']
AFormItem: typeof import('ant-design-vue/es')['FormItem'] AFormItem: typeof import('ant-design-vue/es')['FormItem']
AInput: typeof import('ant-design-vue/es')['Input'] AInput: typeof import('ant-design-vue/es')['Input']
AInputPassword: typeof import('ant-design-vue/es')['InputPassword'] AInputPassword: typeof import('ant-design-vue/es')['InputPassword']
AModal: typeof import('ant-design-vue/es')['Modal'] AModal: typeof import('ant-design-vue/es')['Modal']
AppBottomNav: typeof import('./src/components/navigation/AppBottomNav.vue')['default']
AppCreditLink: typeof import('./src/components/AppCreditLink.vue')['default'] AppCreditLink: typeof import('./src/components/AppCreditLink.vue')['default']
ARadio: typeof import('ant-design-vue/es')['Radio'] AppCurrencyValue: typeof import('./src/components/AppCurrencyValue.vue')['default']
AppSidebar: typeof import('./src/components/navigation/AppSidebar.vue')['default']
AppSkeletonBase: typeof import('./src/components/skeleton/AppSkeletonBase.vue')['default']
AppSkeletonBlock: typeof import('./src/components/skeleton/AppSkeletonBlock.vue')['default']
AppSkeletonCard: typeof import('./src/components/skeleton/AppSkeletonCard.vue')['default']
AppSkeletonPage: typeof import('./src/components/skeleton/AppSkeletonPage.vue')['default']
AppSkeletonProductCard: typeof import('./src/components/skeleton/AppSkeletonProductCard.vue')['default']
AppSkeletonProductListItem: typeof import('./src/components/skeleton/AppSkeletonProductListItem.vue')['default']
AppSkeletonTags: typeof import('./src/components/skeleton/AppSkeletonTags.vue')['default']
ARadioButton: typeof import('ant-design-vue/es')['RadioButton'] ARadioButton: typeof import('ant-design-vue/es')['RadioButton']
ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup'] ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
ASelect: typeof import('ant-design-vue/es')['Select']
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
ASlider: typeof import('ant-design-vue/es')['Slider'] ASlider: typeof import('ant-design-vue/es')['Slider']
ASpin: typeof import('ant-design-vue/es')['Spin'] ASpin: typeof import('ant-design-vue/es')['Spin']
ASwitch: typeof import('ant-design-vue/es')['Switch']
ATag: typeof import('ant-design-vue/es')['Tag']
ATextarea: typeof import('ant-design-vue/es')['Textarea']
ATooltip: typeof import('ant-design-vue/es')['Tooltip']
BaseDatePicker: typeof import('./src/components/BasicPacks/BaseDatePicker/src/BaseDatePicker.vue')['default'] BaseDatePicker: typeof import('./src/components/BasicPacks/BaseDatePicker/src/BaseDatePicker.vue')['default']
Basic: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/basic.vue')['default'] Basic: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/basic.vue')['default']
BasicActionSheet: typeof import('./src/components/BasicPacks/BasicActionSheet.vue')['default'] BasicActionSheet: typeof import('./src/components/BasicPacks/BasicActionSheet.vue')['default']
@@ -57,6 +62,7 @@ declare module 'vue' {
PresettedRanges: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/presetted-ranges.vue')['default'] PresettedRanges: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/presetted-ranges.vue')['default']
ProfileAvatarUpload: typeof import('./src/components/ProfileAvatarUpload.vue')['default'] ProfileAvatarUpload: typeof import('./src/components/ProfileAvatarUpload.vue')['default']
RangePicker: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/range-picker.vue')['default'] RangePicker: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/range-picker.vue')['default']
ResponsiveOverlay: typeof import('./src/components/BasicPacks/ResponsiveOverlay.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink'] RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView'] RouterView: typeof import('vue-router')['RouterView']
SelectInRange: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/select-in-range.vue')['default'] SelectInRange: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/select-in-range.vue')['default']
@@ -66,10 +72,12 @@ declare module 'vue' {
SupportContactBar: typeof import('./src/components/SupportContactBar.vue')['default'] SupportContactBar: typeof import('./src/components/SupportContactBar.vue')['default']
Switchable: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/switchable.vue')['default'] Switchable: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/switchable.vue')['default']
Text: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/text.vue')['default'] Text: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/text.vue')['default']
ThemeBlock: typeof import('./src/components/system/ThemeBlock.vue')['default']
ThemeComponent: typeof import('./src/components/system/ThemeComponent.vue')['default']
ThemedPage: typeof import('./src/components/system/ThemedPage.vue')['default']
Time: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/time.vue')['default'] Time: typeof import('./src/components/BasicPacks/BaseDatePicker/src/datePick/demo/time.vue')['default']
TransactionSkeleton: typeof import('./src/components/TransactionSkeleton.vue')['default'] TransactionSkeleton: typeof import('./src/components/TransactionSkeleton.vue')['default']
VanActionSheet: typeof import('vant/es')['ActionSheet'] VanActionSheet: typeof import('vant/es')['ActionSheet']
VanDialog: typeof import('vant/es')['Dialog'] VanDialog: typeof import('vant/es')['Dialog']
VanField: typeof import('vant/es')['Field']
} }
} }
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+16
View File
@@ -13,6 +13,7 @@ import bazretalaLoginLogo from '@/assets/img/bazretala-login-logo.png'
import bazretalaNavLogo from '@/assets/img/bazretala-nav-logo.png' import bazretalaNavLogo from '@/assets/img/bazretala-nav-logo.png'
import bazretalaFundBg from '@/assets/img/bazretala-fund-bg.png' import bazretalaFundBg from '@/assets/img/bazretala-fund-bg.png'
import bazretalaEmptyFund from '@/assets/img/bazretala-empty-fund.png' import bazretalaEmptyFund from '@/assets/img/bazretala-empty-fund.png'
import soroushgoldLoginLogo from '@/assets/img/soroushgold-login-logo.png'
export function getConfigApp(key: string) { export function getConfigApp(key: string) {
const config = window.__APP_CONFIG__ ? window.__APP_CONFIG__.user:{} const config = window.__APP_CONFIG__ ? window.__APP_CONFIG__.user:{}
@@ -31,6 +32,10 @@ export function isBazretalaProject() {
return getConfigApp('name') === 'bazretala' return getConfigApp('name') === 'bazretala'
} }
export function isSoroushgoldProject() {
return getConfigApp('name') === 'soroushgold'
}
export function getBoursecuTransactionsIcon() { export function getBoursecuTransactionsIcon() {
return boursecuTransactionsIcon return boursecuTransactionsIcon
} }
@@ -116,6 +121,14 @@ export function resolveProjectColor(color?: string | null) {
return color return color
} }
/** لوگوی پنل برند لاگین دسکتاپ — فقط soroushgold لوگوی اختصاصی دارد */
export function getProjectDesktopLoginBrandLogo(avatar?: string | null) {
if (isSoroushgoldProject()) {
return soroushgoldLoginLogo
}
return getProjectSplashLogo(avatar)
}
export function getProjectLoginLogo(avatar?: string | null) { export function getProjectLoginLogo(avatar?: string | null) {
if (isBoursecuProject()) { if (isBoursecuProject()) {
return boursecuLoginLogo return boursecuLoginLogo
@@ -149,6 +162,9 @@ export function getProjectMobileNavLogo(avatar?: string | null) {
if (isBoursecuProject()) { if (isBoursecuProject()) {
return boursecuLoginLogo return boursecuLoginLogo
} }
if (isSoroushgoldProject()) {
return soroushgoldLoginLogo
}
return getProjectNavLogo(avatar) return getProjectNavLogo(avatar)
} }
@@ -1,7 +1,13 @@
<template> <template>
<div class="dauth" :class="{ 'dauth--boursecu': isBoursecu }"> <div class="dauth" :class="{ 'dauth--boursecu': isBoursecu }">
<div class="dauth__layout"> <div class="dauth__layout">
<aside class="dauth-brand" :class="{ 'dauth-brand--boursecu': isBoursecu }"> <aside
class="dauth-brand"
:class="{
'dauth-brand--boursecu': isBoursecu,
'dauth-brand--soroushgold': isSoroushgold,
}"
>
<div class="dauth-brand__pattern" /> <div class="dauth-brand__pattern" />
<div class="dauth-brand__content"> <div class="dauth-brand__content">
<img <img
@@ -37,18 +43,20 @@ import pkg from '../../../../../package.json'
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue' import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
import { useConfigStore } from '@/store/configStore' import { useConfigStore } from '@/store/configStore'
import { import {
getProjectDesktopLoginBrandLogo,
getProjectLoginTaglineLines, getProjectLoginTaglineLines,
getProjectSplashLogo,
hasCustomLoginLogoLayout, hasCustomLoginLogoLayout,
isBoursecuProject, isBoursecuProject,
isSoroushgoldProject,
} from '@/utils/config' } from '@/utils/config'
const config = useConfigStore() const config = useConfigStore()
const isBoursecu = isBoursecuProject() const isBoursecu = isBoursecuProject()
const hasCustomLayout = hasCustomLoginLogoLayout() const isSoroushgold = isSoroushgoldProject()
const hasCustomLayout = hasCustomLoginLogoLayout() || isSoroushgold
const version = pkg.version const version = pkg.version
const logo = computed(() => getProjectSplashLogo(config.config?.avatar)) const logo = computed(() => getProjectDesktopLoginBrandLogo(config.config?.avatar))
const taglineLines = computed(() => getProjectLoginTaglineLines()) const taglineLines = computed(() => getProjectLoginTaglineLines())
const tagline = computed(() => { const tagline = computed(() => {
@@ -34,6 +34,15 @@
} }
} }
&--soroushgold {
.dauth-brand__logo {
max-width: 220px;
max-height: 220px;
width: min(100%, 220px);
object-fit: contain;
}
}
&__pattern { &__pattern {
position: absolute; position: absolute;
inset: 0; inset: 0;