@@ -278,6 +288,7 @@ import { useUserStore } from '@/store/userStore'
import BasicActionSheet from '@/components/BasicPacks/BasicActionSheet.vue'
import BasicModal from '@/components/BasicPacks/BasicModal.vue'
import { useDesktopBreakpoint } from '@/layouts/composables/useAppLayout'
+import MobilePageHeader from '@/layouts/components/MobilePageHeader.vue'
import { justNumber } from '@/utils/inputRules'
import GoldSkeleton from '@/views/base/gold/components/GoldSkeleton.vue'
import GoldLoading from '@/components/GoldLoading.vue'
@@ -336,6 +347,20 @@ interface Prop {
const props = withDefaults(defineProps
(), {})
const isDesktop = useDesktopBreakpoint()
const isStandaloneDesktop = computed(() => isDesktop.value && !props.ProductItem)
+const isStandaloneMobile = computed(() => !isDesktop.value && !props.ProductItem)
+const rootClass = computed(() => {
+ if (isStandaloneDesktop.value) return 'dgold'
+ if (props.ProductItem) return 'gold-embed'
+ return 'gold-page'
+})
+const panelClass = computed(() => (isStandaloneDesktop.value ? 'dgold__panel' : ''))
+const contentClass = computed(() => {
+ if (isStandaloneDesktop.value) return 'mt-5 mb-25vh pb-2'
+ if (isStandaloneMobile.value) {
+ return 'px-3 mpage-content mpage-content--with-subheader pb-[calc(var(--app-bottom-chrome-height)+1rem)]'
+ }
+ return 'mt-5 px-3 pb-4'
+})
const isBuy = ref(true)
const tradeProductLabel = computed(() => {
diff --git a/src/views/base/products/components/DealProduct.vue b/src/views/base/products/components/DealProduct.vue
index 39812e7..c36c595 100644
--- a/src/views/base/products/components/DealProduct.vue
+++ b/src/views/base/products/components/DealProduct.vue
@@ -277,6 +277,7 @@ import Icon from '@/components/BasicPacks/BasicIcon.vue'
import { useUserStore } from '@/store/userStore'
import BasicActionSheet from '@/components/BasicPacks/BasicActionSheet.vue'
import { justNumber2, justNumber3, required } from '@/utils/inputRules'
+import { persianToEnglishDigits } from '@/utils/persianDigits'
import GoldSkeleton from '@/views/base/gold/components/GoldSkeleton.vue'
import GoldLoading from '@/components/GoldLoading.vue'
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
@@ -678,16 +679,7 @@ watch(
)
// تابع تبدیل اعداد فارسی به انگلیسی
-const persianToEnglish = (str: string | number | undefined): string => {
- if (!str) return ''
- const persianNumbers = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']
- const englishNumbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
- let result = str.toString()
- for (let i = 0; i < 10; i++) {
- result = result.replace(new RegExp(persianNumbers[i], 'g'), englishNumbers[i])
- }
- return result
-}
+const persianToEnglish = persianToEnglishDigits
watch(() => form.value.goldValue, (newVal) => {
if (newVal !== undefined && newVal !== null && newVal !== '') {
diff --git a/src/views/login/components/Register.vue b/src/views/login/components/Register.vue
index 2ea604a..37d0d65 100644
--- a/src/views/login/components/Register.vue
+++ b/src/views/login/components/Register.vue
@@ -80,7 +80,7 @@
/>
@@ -226,7 +226,7 @@ import type { User } from '@/models/login'
import BasicInput from '@/components/BasicPacks/BasicInput.vue'
import BasicButton from '@/components/BasicPacks/BasicButton.vue'
import { loading, URLUserType } from '@/utils'
-import { onMounted, reactive, ref } from 'vue'
+import { computed, onMounted, reactive, ref } from 'vue'
import type { FormInstance } from 'ant-design-vue'
import { message } from 'ant-design-vue'
import registerDelayImage from '@/assets/img/registerDelay.svg'
@@ -234,7 +234,8 @@ import DialogVantOneButton from '@/components/DialogVantOneButton.vue'
import { registerCustomer } from '@/api/login'
import router from '@/router'
import {useConfigStore} from "@/store/configStore";
-import {getProjectLoginLogo, getProjectLoginTaglineLines, hasCustomLoginLogoLayout, isBoursecuProject} from "@/utils/config";
+import {useSettingsStore} from '@/store/settingsStore'
+import {getProjectLoginLogo, getProjectLoginTaglineLines, hasCustomLoginLogoLayout} from "@/utils/config";
withDefaults(
defineProps<{
@@ -244,6 +245,13 @@ withDefaults(
)
const config = useConfigStore()
+const settingsStore = useSettingsStore()
+const referralIdRules = computed(() =>
+ settingsStore.isReferralRequired ? [required('کد معرف')] : [],
+)
+const referralIdPlaceholder = computed(() =>
+ settingsStore.isReferralRequired ? 'کد معرف' : 'کد معرف (اختیاری)',
+)
// const stepTwoVerify = ref(false)
const registeredInfo = ref(false)
diff --git a/src/views/login/desktop/components/DesktopRegisterForm.vue b/src/views/login/desktop/components/DesktopRegisterForm.vue
index 50443df..cbdd135 100644
--- a/src/views/login/desktop/components/DesktopRegisterForm.vue
+++ b/src/views/login/desktop/components/DesktopRegisterForm.vue
@@ -1,11 +1,12 @@