changes of boursemes
This commit is contained in:
@@ -31,6 +31,7 @@ export function inputLenRules(len: number, title?: string) {
|
||||
import {computed, ref} from 'vue'
|
||||
import type {Rule} from 'ant-design-vue/es/form'
|
||||
import {useWalletStore} from "@/store/walletStore";
|
||||
import { isCashLikeDealMethod } from '@/utils/productDealMethod'
|
||||
|
||||
export const mobileValidation = (title?: string) => {
|
||||
return {len: 11, message: `شماره همراه باید 11 رقم باشد`}
|
||||
@@ -145,13 +146,13 @@ const checkNumber = async (_rule: Rule, value: number) => {
|
||||
return Promise.reject('استفاده از اعداد اعشاری مجاز نمی باشد')
|
||||
}
|
||||
if (isBuyP){
|
||||
if (!walletCash?.walletInfo?.cash && methodP == 'cash'){
|
||||
if (!walletCash?.walletInfo?.cash && isCashLikeDealMethod(methodP)){
|
||||
return Promise.reject('موجودی کیف پول ناکافی است')
|
||||
}
|
||||
if (!walletCash?.walletInfo?.gold && methodP == 'gold'){
|
||||
return Promise.reject('موجودی کیف طلا ناکافی است')
|
||||
}
|
||||
if (priceP * value > walletCash?.walletInfo?.cash && methodP == 'cash')
|
||||
if (priceP * value > walletCash?.walletInfo?.cash && isCashLikeDealMethod(methodP))
|
||||
return Promise.reject('موجودی کیف پول ناکافی است')
|
||||
if (amountP * value > walletCash?.walletInfo?.gold && methodP == 'gold')
|
||||
return Promise.reject('موجودی کیف طلا ناکافی است')
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
import type { SelectItem } from '@/models/SelectItem'
|
||||
import { isBoursecuProject } from '@/utils/config'
|
||||
|
||||
export const BOURSECU_GROUP_MAFTOL = 'مفتول مس'
|
||||
export const BOURSECU_GROUP_KATAD = 'کاتد مس'
|
||||
export const BOURSECU_GROUP_ABSHODE = 'آبشده'
|
||||
|
||||
const DEFAULT_TYPE_DEAL: SelectItem[] = [
|
||||
{ value: 'نقدی', key: 'cash' },
|
||||
{ value: 'طلایی', key: 'gold' },
|
||||
]
|
||||
|
||||
const MAFTOL_TYPE_DEAL: SelectItem[] = [
|
||||
{ value: 'کاتد', key: 'katod' },
|
||||
{ value: 'نقدی', key: 'cash' },
|
||||
]
|
||||
|
||||
const GOLD_ONLY_TYPE_DEAL: SelectItem[] = [
|
||||
{ value: 'طلایی', key: 'gold' },
|
||||
]
|
||||
|
||||
export function normalizeProductGroupType(groupType?: string | null) {
|
||||
return (groupType ?? '').trim()
|
||||
}
|
||||
|
||||
export function isBoursecuDealProductGroup(groupType?: string | null) {
|
||||
if (!isBoursecuProject()) {
|
||||
return false
|
||||
}
|
||||
|
||||
const group = normalizeProductGroupType(groupType)
|
||||
return group === BOURSECU_GROUP_MAFTOL
|
||||
|| group === BOURSECU_GROUP_KATAD
|
||||
|| group === BOURSECU_GROUP_ABSHODE
|
||||
}
|
||||
|
||||
export function isMaftolMesGroup(groupType?: string | null) {
|
||||
return normalizeProductGroupType(groupType) === BOURSECU_GROUP_MAFTOL
|
||||
}
|
||||
|
||||
export function isGoldOnlyDealGroup(groupType?: string | null) {
|
||||
const group = normalizeProductGroupType(groupType)
|
||||
return group === BOURSECU_GROUP_KATAD || group === BOURSECU_GROUP_ABSHODE
|
||||
}
|
||||
|
||||
export function getProductDealMethodOptions(groupType?: string | null): SelectItem[] {
|
||||
if (!isBoursecuProject()) {
|
||||
return DEFAULT_TYPE_DEAL
|
||||
}
|
||||
|
||||
if (isMaftolMesGroup(groupType)) {
|
||||
return MAFTOL_TYPE_DEAL
|
||||
}
|
||||
|
||||
if (isGoldOnlyDealGroup(groupType)) {
|
||||
return GOLD_ONLY_TYPE_DEAL
|
||||
}
|
||||
|
||||
return DEFAULT_TYPE_DEAL
|
||||
}
|
||||
|
||||
export function getDefaultProductDealMethod(groupType?: string | null) {
|
||||
return getProductDealMethodOptions(groupType)[0]?.key ?? 'cash'
|
||||
}
|
||||
|
||||
export function isCashLikeDealMethod(method?: string | null) {
|
||||
return method === 'cash' || method === 'katod'
|
||||
}
|
||||
@@ -6,10 +6,11 @@
|
||||
</div>
|
||||
<div class="mr-2">دارایی ها</div>
|
||||
</div>
|
||||
<div class="bg-[#EFCED9] w-screen md:w-full h-[70vh] fixed md:absolute">
|
||||
<div class="pt-15 flex flex-col">
|
||||
<div class="text-gray-500 font-bold mr-5 z-20">موجودی دارایی ها</div>
|
||||
<div class="flex justify-center mt-2 w-full z-20">
|
||||
<div class="text-tertiary bg-primary w-screen md:w-full h-[70vh] fixed md:absolute overflow-hidden">
|
||||
<img :src="img" alt="" class="w-full absolute bottom-0 left-0 opacity-5 pointer-events-none z-0" />
|
||||
<div class="pt-15 flex flex-col relative z-10">
|
||||
<div class="text-tertiary font-bold mr-5 z-20">موجودی دارایی ها</div>
|
||||
<div class="flex mt-4 justify-center mt-2 w-full z-20">
|
||||
محصولات:
|
||||
<div class="text-l mr-4 font-bold">{{ walletStore.walletInfo?.count_product ?? 0}}عدد</div>
|
||||
</div>
|
||||
@@ -33,15 +34,6 @@
|
||||
معادل ریالی مجموع دارایی ها:
|
||||
<div class="text-l mr-4 font-bold">{{ usePriceWithoutType(walletStore.walletInfo?.count_cash_total ?? 0) }}ریال</div>
|
||||
</div>
|
||||
<!-- <div class="flex items-baseline justify-center mt-2 w-full z-20">
|
||||
<div class="text-3xl font-bold">{{ inventory }}</div>
|
||||
/عدد
|
||||
</div>
|
||||
<div class="flex items-baseline justify-center mt-2 w-full z-20">
|
||||
<div class="text-3xl font-bold">{{ (weight + ((userInfo?.gold) ?? 0)).toFixed(3)}}</div>
|
||||
/گرم
|
||||
</div>-->
|
||||
<img :src="img" alt="" class="mt-[-4rem] mr-10 max-w-[22rem] self-end">
|
||||
</div>
|
||||
</div>
|
||||
<div class="pt-[20rem] ">
|
||||
@@ -76,7 +68,7 @@
|
||||
import router from "@/router";
|
||||
import BasicIcon from "@/components/BasicPacks/BasicIcon.vue";
|
||||
import BasicModal from "@/components/BasicPacks/BasicModal.vue";
|
||||
import img from '@/assets/img/cash_img.svg'
|
||||
import img from '@/assets/img/user_ly1.svg'
|
||||
import empty from '@/assets/img/cash_empty.svg'
|
||||
import Item from './components/Item.vue'
|
||||
import {onMounted, ref} from "vue";
|
||||
|
||||
@@ -114,8 +114,8 @@
|
||||
</div>
|
||||
|
||||
<img v-else
|
||||
class="p-2"
|
||||
:src="config.config.avatar"
|
||||
:class="isBoursecuNavLogo ? 'p-1' : 'p-2'"
|
||||
:src="getProjectLoginLogo(config.config?.avatar)"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="flex justify-center">خرید </div>
|
||||
@@ -155,7 +155,7 @@ import BasicButton from '@/components/BasicPacks/BasicButton.vue'
|
||||
import type {Transaction} from '@/models/transaction'
|
||||
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
|
||||
import {useConfigStore} from "@/store/configStore";
|
||||
import {getConfigApp, isBoursecuProject} from "@/utils/config";
|
||||
import {getConfigApp, getProjectLoginLogo, isBoursecuProject} from "@/utils/config";
|
||||
|
||||
/*onMounted(async () => {
|
||||
const c = await document.getElementById("canvas1");
|
||||
@@ -290,6 +290,10 @@ function setRoute(val: string) {
|
||||
.circle_into {
|
||||
background: #133050 !important;
|
||||
border-color: #fff;
|
||||
|
||||
img {
|
||||
object-fit: contain;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
<!-- {{walletStore?.walletInfo?.gold}}-->
|
||||
<Transition mode="out-in" name="fade" class="mt-2">
|
||||
<div v-if="isBuy&&form.method=='gold'" class="font-bold text-xs">
|
||||
<div v-if="isBuy && form.method === 'gold'" class="font-bold text-xs">
|
||||
<div> {{ `موجودی کیف طلا: ${walletStore?.walletInfo?.gold ?? 0} گرم` }}</div>
|
||||
</div>
|
||||
<div v-else-if="isBuy" class="font-bold text-xs">
|
||||
@@ -253,20 +253,15 @@ import { getTransactionTable } from '@/api/transaction'
|
||||
import { getLastPrices, lastPrice} from '@/utils/price'
|
||||
import { Product } from '@/models/products'
|
||||
import BasicSelect from '@/components/BasicPacks/BasicSelect.vue'
|
||||
import { SelectItem } from '@/models/SelectItem'
|
||||
import Bg_main from '@/components/bg_main.vue'
|
||||
import { useFundUserStore } from '@/store/fundStore'
|
||||
const typeDeal: SelectItem[] = [
|
||||
{
|
||||
value: 'نقدی',
|
||||
key: 'cash'
|
||||
},
|
||||
{
|
||||
value: ' طلایی',
|
||||
key: 'gold'
|
||||
}
|
||||
import {
|
||||
getDefaultProductDealMethod,
|
||||
getProductDealMethodOptions,
|
||||
isCashLikeDealMethod,
|
||||
} from '@/utils/productDealMethod'
|
||||
|
||||
]
|
||||
const typeDeal = computed(() => getProductDealMethodOptions(props?.ProductItem?.group_type))
|
||||
const infoVisible = ref(false)
|
||||
const walletStore = useWalletStore()
|
||||
const userStore = useUserStore()
|
||||
@@ -454,6 +449,18 @@ const form = ref<Gold>({
|
||||
goldVazn:undefined
|
||||
})
|
||||
|
||||
function resetDealMethod() {
|
||||
form.value.method = getDefaultProductDealMethod(props?.ProductItem?.group_type)
|
||||
}
|
||||
|
||||
watch(
|
||||
() => [props?.ProductItem?.id, props?.ProductItem?.group_type],
|
||||
() => {
|
||||
resetDealMethod()
|
||||
},
|
||||
{ immediate: true }
|
||||
)
|
||||
|
||||
// تابع تبدیل اعداد فارسی به انگلیسی
|
||||
const persianToEnglish = (str: string | number | undefined): string => {
|
||||
if (!str) return ''
|
||||
@@ -622,6 +629,7 @@ function setIsBuy(val: boolean) {
|
||||
form.value.goldCash = undefined
|
||||
form.value.percentWallet = 0
|
||||
priceErrorVisible.value = false
|
||||
resetDealMethod()
|
||||
|
||||
// console.log(bganim.value.classList)
|
||||
// bganim?.value?.classList.add(val?'right':'left')
|
||||
@@ -685,7 +693,7 @@ async function ok() {
|
||||
goldValue: undefined,
|
||||
goldCash: undefined,
|
||||
percentWallet: undefined,
|
||||
method: 'cash'
|
||||
method: getDefaultProductDealMethod(props?.ProductItem?.group_type)
|
||||
}
|
||||
// refreshTable()
|
||||
await fundStore.getMyFund()
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
|
||||
<BasicActionSheet placement="bottom" v-model:show="showFilter">
|
||||
<div class="">
|
||||
<indexGold v-if="['آبشده'].includes(selectedProduct?.group_type)"
|
||||
<indexGold v-if="['آبشده'].includes(selectedProduct?.group_type) && !isBoursecuProject()"
|
||||
:ProductItem="selectedProduct"
|
||||
>
|
||||
</indexGold>
|
||||
<CopperSilver v-else-if="['مس','نقره'].includes(selectedProduct?.group_type)"
|
||||
<CopperSilver v-else-if="['مس','نقره'].includes(selectedProduct?.group_type) && !isBoursecuDealProductGroup(selectedProduct?.group_type)"
|
||||
:ProductItem="selectedProduct"
|
||||
>
|
||||
</CopperSilver>
|
||||
@@ -105,6 +105,8 @@ import { cloneDeep } from 'lodash'
|
||||
import img from "@/assets/img/user_ly1.svg";
|
||||
import BasicModal from "@/components/BasicPacks/BasicModal.vue";
|
||||
import { isProductPriceInactive } from '@/utils/productPrice'
|
||||
import { isBoursecuProject } from '@/utils/config'
|
||||
import { isBoursecuDealProductGroup } from '@/utils/productDealMethod'
|
||||
|
||||
const activekey = ref('طلا' ||'آبشده')
|
||||
const showFilter = ref(false)
|
||||
|
||||
@@ -16,33 +16,30 @@
|
||||
<img :src="logoFull" class="mb-20 h-15vh mt-5" />
|
||||
</div>-->
|
||||
<div class="overflow-y-auto h-60vh pb-20 border-primary">
|
||||
<div
|
||||
class="mt-5 text-5 border-solid border-2 border-primary text-primary rounded-[12px] p-4"
|
||||
>
|
||||
<div class="rules-panel mt-5 border-solid border-2 border-primary text-primary rounded-[12px] p-4">
|
||||
<div class="font-bold text-sm text-primary">
|
||||
{{ rulesTitle }}
|
||||
</div>
|
||||
<div class="w-full h-1px my-3 bg-secondary"></div>
|
||||
<div
|
||||
v-for="(rule, index) in rulesItems"
|
||||
:key="`rule-${index}`"
|
||||
class="mt-5 text-xs leading-5"
|
||||
v-for="(block, blockIndex) in rulesBlocks"
|
||||
:key="`block-${blockIndex}`"
|
||||
class="rules-block"
|
||||
>
|
||||
{{ rule }}
|
||||
</div>
|
||||
<template v-if="supplementaryRulesTitle">
|
||||
<div class="w-full h-1px my-3 bg-secondary"></div>
|
||||
<div class="font-bold text-sm text-primary">
|
||||
{{ supplementaryRulesTitle }}
|
||||
</div>
|
||||
<div
|
||||
v-for="(rule, index) in supplementaryRulesItems"
|
||||
:key="`supplementary-${index}`"
|
||||
class="mt-5 text-xs leading-5"
|
||||
v-if="block.title"
|
||||
class="font-bold text-sm text-primary mt-4 mb-2"
|
||||
>
|
||||
{{ block.title }}
|
||||
</div>
|
||||
<p
|
||||
v-for="(rule, index) in block.items"
|
||||
:key="`rule-${blockIndex}-${index}`"
|
||||
class="rules-paragraph"
|
||||
>
|
||||
{{ rule }}
|
||||
</div>
|
||||
</template>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -89,12 +86,10 @@ import BaseDatePicker from '@/components/BasicPacks/BaseDatePicker'
|
||||
import {useConfigStore} from "../../../store/configStore";
|
||||
import {getReferralShareText, getReferralShareTitle, isBoursecuProject} from "@/utils/config";
|
||||
import {
|
||||
getRulesItems,
|
||||
getRulesBlocks,
|
||||
getRulesTitle,
|
||||
getSupplementaryRulesItems,
|
||||
getSupplementaryRulesTitle,
|
||||
} from './rulesContent'
|
||||
const config=useConfigStore()
|
||||
const config = useConfigStore()
|
||||
const userFormState = ref<User>({
|
||||
fname: '',
|
||||
lname: '',
|
||||
@@ -107,12 +102,10 @@ const userFormState = ref<User>({
|
||||
})
|
||||
const formRef = ref<FormInstance>()
|
||||
const userStore = useUserStore()
|
||||
const nameProject= useConfigStore().config.name_fa
|
||||
const nameProject = computed(() => config.config?.name_fa || config.config?.name || 'بورس مس')
|
||||
const isBoursecu = computed(() => isBoursecuProject())
|
||||
const rulesTitle = computed(() => getRulesTitle(nameProject, isBoursecu.value))
|
||||
const rulesItems = computed(() => getRulesItems(nameProject, isBoursecu.value))
|
||||
const supplementaryRulesTitle = computed(() => getSupplementaryRulesTitle(isBoursecu.value))
|
||||
const supplementaryRulesItems = computed(() => getSupplementaryRulesItems(nameProject, isBoursecu.value))
|
||||
const rulesTitle = computed(() => getRulesTitle(nameProject.value, isBoursecu.value))
|
||||
const rulesBlocks = computed(() => getRulesBlocks(nameProject.value, isBoursecu.value))
|
||||
// const editPassVisible = ref<boolean>(false)
|
||||
const editPassVisible = ref<boolean>(false)
|
||||
|
||||
@@ -131,11 +124,11 @@ function copyCode() {
|
||||
function shareCode() {
|
||||
const val = getReferralShareText({
|
||||
userName: userStore.userInfo?.name,
|
||||
projectName: nameProject,
|
||||
projectName: nameProject.value,
|
||||
referralId: userStore.userInfo?.referral_id,
|
||||
})
|
||||
navigator.share({
|
||||
title: getReferralShareTitle(nameProject),
|
||||
title: getReferralShareTitle(nameProject.value),
|
||||
text: val
|
||||
})
|
||||
}
|
||||
@@ -176,16 +169,25 @@ function ok() {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/*.fade-enter-active,
|
||||
.fade-leave-active {
|
||||
transition: opacity 0.2s ease;
|
||||
.rules-panel {
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.75rem;
|
||||
}
|
||||
|
||||
.fade-enter-from,
|
||||
.fade-leave-to {
|
||||
opacity: 0;
|
||||
}*/
|
||||
/*.trans{
|
||||
transition: height 1s;
|
||||
}*/
|
||||
.rules-block + .rules-block {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.rules-paragraph {
|
||||
margin: 0 0 1rem;
|
||||
text-align: justify;
|
||||
line-height: 1.9;
|
||||
word-break: normal;
|
||||
overflow-wrap: break-word;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.rules-paragraph:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,74 +1,129 @@
|
||||
function replaceGoldWithCopper(text: string) {
|
||||
return text.replace(/طلا/g, 'مس')
|
||||
export interface RulesBlock {
|
||||
title?: string
|
||||
items: string[]
|
||||
}
|
||||
|
||||
function resolveProjectName(nameProject?: string | null) {
|
||||
return (nameProject ?? '').trim() || 'بورس مس'
|
||||
}
|
||||
|
||||
function getDefaultRulesItems(nameProject: string): string[] {
|
||||
const brand = resolveProjectName(nameProject)
|
||||
|
||||
return [
|
||||
`کاربران موظفند قبل از ثبتنام، تمامی مفاد این تعهدنامه را مطالعه نموده و صرفاً در صورت پذیرش آن اقدام به ثبتنام نمایند.`,
|
||||
`کاربران ${brand} میپذیرند که کلیه فعالیتهای آنها در ${brand}، در چارچوب قوانین جمهوری اسلامی ایران بوده و هیچ گونه فعالیتی خارج از این چارچوب انجام نخواهد شد.`,
|
||||
`احراز هویت برای استفاده از خدمات ${brand} ضروری بوده و کاربران موظفند اطلاعات صحیح خود را بارگذاری نمایند. در صورت تخلف در احراز هویت، مسئولیت بر عهده فرد متخلف بوده و ${brand} حق توقف ارائه خدمات و ارجاع موارد تخلف به مراجع ذیصلاح را خواهد داشت.`,
|
||||
`${brand} خود را ملزم به حفظ اطلاعات شخصی کاربران در چارچوب قوانین قضایی کشور میداند.`,
|
||||
`کاربران ${brand} تعهد میدهند حساب خود را در اختیار دیگران قرار ندهند و تنها برای حساب شخصی خود از خدمات استفاده کنند. شماره حساب اعلامشده باید متعلق به خود کاربر باشد.`,
|
||||
`کاربران میپذیرند در صورت تشخیص پشتیبانی، برای حفظ امنیت دارایی حساب، با اطلاع قبلی در تماس تصویری همکاری نمایند.`,
|
||||
`سهلانگاری در حفظ اطلاعات و امنیت حساب از جمله رمز عبور، گوشی، کارت ملی و مدارک شناسایی، بر عهده کاربر است و ${brand} مسئولیتی در این موارد ندارد.`,
|
||||
`استفاده از رمز عبور پیچیده و کد شناسایی دو عاملی توصیه میشود.`,
|
||||
`${brand} دارایی کاربران را با بالاترین استانداردهای امنیتی حفظ میکند و در صورت بروز مشکل امنیتی متعهد به جبران خسارت خواهد بود.`,
|
||||
`به عنوان پلتفرم معاملات برخط فلزات گرانبها، ${brand} مسئولیتی در قبال تصمیمات اقتصادی کاربران و سود و زیان حاصل از آن ندارد.`,
|
||||
`${brand} حق اصلاح قوانین این صفحه را دارد و استفاده از خدمات پس از اعمال تغییرات، به معنای پذیرش آنهاست.`,
|
||||
`از لحظه خرید تا زمان تحویل طلای خریداریشده، مسئولیت حفظ و نگهداری آن بر عهده ${brand} است.`,
|
||||
`کاربران ${brand} از ریسکهای سرمایهگذاری در حوزه طلا مطلع بوده و با علم به این موضوع اقدام به معامله میکنند.`,
|
||||
`${brand} متعهد است از حریم شخصی کاربران محافظت کند.`,
|
||||
`در صورت نوسان شدید قیمت طلا، ${brand} میتواند برای خرید و فروش سقف تعیین کند.`,
|
||||
`${brand} مجاز است بدون اطلاع قبلی سفارشگیری جدید را متوقف کند. سفارشهای تکمیلشده قبل از توقف، پردازش میشوند.`,
|
||||
`در صورت اختلال اینترنت یا زیرساخت به دلایل حاکمیتی، ${brand} مسئولیتی ندارد.`,
|
||||
`درخواست برداشت ریال پس از ثبت بررسی میشود. زمان واریز مطابق محدودیتهای انتقال وجه بین بانکی (پایا، ساتنا) خواهد بود.`,
|
||||
`کاربر حق داعیه و شکایت از سایت، مدیران و کارمندان را جز در موارد تعهد ندارد.`,
|
||||
`در صورت واریز اشتباه وجه، ${brand} مجاز است نسبت به رفع اشتباه و برداشت از حساب اقدام کند و کاربر حق اعتراض را از خود ساقط میداند.`,
|
||||
`در صورت ابهام در معاملات، ${brand} حق ابطال معامله و عودت داراییها را دارد. در صورت اشکال از سمت ${brand}، جبران خسارت انجام میشود.`,
|
||||
`در صورت فوت یا حجر کاربر، ${brand} پیرو قوانین جمهوری اسلامی ایران است.`,
|
||||
`هزینه خدمات و کارمزد مطابق راهنمای استفاده از ${brand} محاسبه میشود.`,
|
||||
`کلیه حقوق مادی و معنوی ${brand} محفوظ است و استفاده بدون رضایت مجاز نیست.`,
|
||||
`ابطال هر بند، بر سایر بندها اثر ندارد.`,
|
||||
]
|
||||
}
|
||||
|
||||
function getBoursecuRulesBlocks(nameProject: string): RulesBlock[] {
|
||||
const brand = resolveProjectName(nameProject)
|
||||
|
||||
return [
|
||||
{
|
||||
items: [
|
||||
`کاربران موظفند قبل از ثبتنام، تمامی مفاد این تعهدنامه را مطالعه کرده و فقط در صورت پذیرش کامل آن اقدام به ثبتنام نمایند.`,
|
||||
`کاربران ${brand} میپذیرند تمام فعالیتهای خود را در چارچوب قوانین جمهوری اسلامی ایران انجام دهند.`,
|
||||
`احراز هویت برای استفاده از خدمات ${brand} الزامی است. کاربران موظفند اطلاعات صحیح ارائه دهند و ${brand} در صورت تخلف، حق توقف خدمات و ارجاع به مراجع قانونی را دارد.`,
|
||||
`${brand} متعهد به حفظ اطلاعات شخصی کاربران در چارچوب قوانین کشور است.`,
|
||||
`کاربران نباید حساب خود را در اختیار دیگران قرار دهند. استفاده از خدمات فقط برای حساب شخصی مجاز است و شماره حساب باید به نام خود کاربر باشد.`,
|
||||
`برای حفظ امنیت دارایی، کاربران در صورت درخواست پشتیبانی، با اطلاع قبلی در تماس تصویری همکاری میکنند.`,
|
||||
`حفظ رمز عبور، گوشی، مدارک شناسایی و سایر اطلاعات امنیتی بر عهده کاربر است.`,
|
||||
`استفاده از رمز عبور قوی و احراز هویت دو مرحلهای توصیه میشود.`,
|
||||
`${brand} دارایی کاربران را با رعایت استانداردهای امنیتی نگهداری میکند و در صورت بروز مشکل امنیتی، متعهد به جبران خسارت است.`,
|
||||
`${brand} به عنوان پلتفرم تخصصی معاملات مس، مسئولیتی در قبال سود و زیان تصمیمات کاربران ندارد.`,
|
||||
`${brand} حق بهروزرسانی این قوانین را دارد. ادامه استفاده از خدمات به منزله پذیرش نسخه جدید است.`,
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'تحویل، قیمت و ریسک معاملات',
|
||||
items: [
|
||||
`مسئولیت نگهداری مس خریداریشده تا زمان تحویل بر عهده ${brand} است.`,
|
||||
`در معاملات دارای تحویل فیزیکی، خریدار موظف است در مهلت مقرر کالا را دریافت کند. هزینه حمل، بارگیری، بیمه و سایر هزینههای جانبی طبق شرایط همان معامله محاسبه میشود.`,
|
||||
`قیمت مس تابع نوسان بازارهای داخلی و بینالمللی است.`,
|
||||
`هر کاربر با آگاهی کامل از ریسکهای سرمایهگذاری در بازار مس اقدام به معامله میکند و ${brand} هیچگونه تضمینی برای سودآوری ارائه نمیدهد.`,
|
||||
`در صورت نوسان شدید قیمت مس یا بروز رویدادهای برهمزننده بازار، ${brand} میتواند سقف خرید و فروش تعیین کند.`,
|
||||
`${brand} میتواند بدون اطلاع قبلی سفارشگیری جدید را متوقف کند. سفارشهای تکمیلشده قبل از توقف، پردازش میشوند.`,
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'تعهدات، اختلاف و فورس ماژور',
|
||||
items: [
|
||||
`در شرایط فورس ماژور از جمله جنگ، تحریم، اختلال زیرساخت، بلایای طبیعی و تصمیمات حاکمیتی، ${brand} مسئولیتی بابت تأخیر یا توقف خدمات ندارد.`,
|
||||
`درخواست برداشت ریال پس از ثبت بررسی میشود. زمان واریز مطابق قوانین انتقال وجه بین بانکی (پایا و ساتنا) است.`,
|
||||
`کاربران حق طرح دعوی علیه ${brand} را جز در موارد صریحاً تعهدشده، از خود سلب میکنند.`,
|
||||
`در صورت واریز یا محاسبه اشتباه، ${brand} مجاز به اصلاح و برداشت از حساب است و کاربر حق اعتراض را از خود ساقط میداند.`,
|
||||
`کاربران متعهدند از ${brand} برای معاملات صوری، دستکاری قیمت، تبانی، پولشویی یا فعالیت غیرقانونی استفاده نکنند.`,
|
||||
`در صورت اختلاف در معامله، ${brand} حق ابطال معامله و بازگرداندن دارایی طرفین را دارد. اگر خطا از سمت ${brand} باشد، جبران خسارت انجام میشود.`,
|
||||
`در صورت فوت یا حجر کاربر، ${brand} تابع قوانین جمهوری اسلامی ایران خواهد بود.`,
|
||||
`کارمزد و هزینه خدمات مطابق راهنمای ${brand} محاسبه میشود.`,
|
||||
`تمامی حقوق مادی و معنوی ${brand} محفوظ است.`,
|
||||
`ابطال هر بند، اعتبار سایر بندها را مخدوش نمیکند.`,
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'مقررات تکمیلی معاملات مس',
|
||||
items: [
|
||||
`فروشندگان موظفند مشخصات فنی، آنالیز شیمیایی، استاندارد تولید، وزن و سایر ویژگیهای کالا را بهصورت صحیح اعلام کنند.`,
|
||||
`مسئولیت صحت اطلاعات ارائهشده بر عهده فروشنده است.`,
|
||||
`در اختلاف کیفیت، وزن یا مشخصات فنی، مرجع داوری مورد تأیید ${brand} ملاک رسیدگی است.`,
|
||||
`${brand} برای اجرای قوانین مبارزه با پولشویی و مقررات حاکم، میتواند اطلاعات تکمیلی درخواست کرده یا حساب کاربری را محدود یا تعلیق کند.`,
|
||||
`سوابق سفارشها، معاملات، پیامهای سیستمی و گزارشهای امنیتی ثبتشده در سامانه، در رسیدگی به اختلافات بین طرفین ملاک معتبر ${brand} محسوب میشوند.`,
|
||||
`${brand} حق تعلیق یا مسدودسازی حساب کاربران متخلف را بدون ایجاد حق مطالبه خسارت برای کاربر محفوظ میدارد.`,
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
export function getRulesTitle(nameProject: string, isBoursecu: boolean) {
|
||||
const brand = resolveProjectName(nameProject)
|
||||
|
||||
if (isBoursecu) {
|
||||
return `قوانین و مقررات معاملات مس در بستر ${nameProject}`
|
||||
return `قوانین و مقررات معاملات مس در بستر ${brand}`
|
||||
}
|
||||
return `قوانین و مقررات معاملات طلا در بستر ${nameProject}`
|
||||
|
||||
return `قوانین و مقررات معاملات طلا در بستر ${brand}`
|
||||
}
|
||||
|
||||
export function getRulesBlocks(nameProject: string, isBoursecu: boolean): RulesBlock[] {
|
||||
if (isBoursecu) {
|
||||
return getBoursecuRulesBlocks(nameProject)
|
||||
}
|
||||
|
||||
return [{ items: getDefaultRulesItems(nameProject) }]
|
||||
}
|
||||
|
||||
export function getRulesItems(nameProject: string, isBoursecu: boolean) {
|
||||
const items = [
|
||||
`• کاربران موظفند قبل از ثبت نام، تمامی مفاد این تعهدنامه را مطالعه نموده و صرفاً در صورت پذیرش آن اقدام به ثبتنام نمایند.`,
|
||||
`• کاربران ${nameProject} میپذیرند که کلیهی فعالیتهای آنها در ${nameProject}، در چارچوب قوانین جمهوری اسلامی ایران بوده و هیچ گونه فعالیتی خارج از این چارچوب انجام نخواهد شد.`,
|
||||
`• احراز هویت برای استفاده از خدمات ${nameProject} ضروری بوده و کاربران موظفند اطلاعات صحیح خود را بارگذاری نمایند؛ بدیهی است در صورت وجود هرگونه تخلف در احراز هویت، مسئولیت به عهدهی فرد متخلف بوده و ${nameProject} حق توقف ارائه خدمات به کاربر مذکور و ارجاع موارد تخلف به مراجع ذیصلاح را خواهد داشت.`,
|
||||
`• ${nameProject} خود را ملزم به حفظ اطلاعات شخصی کاربران در چارچوب قوانین قضایی کشور میداند.`,
|
||||
`• کاربران ${nameProject} تعهد میدهند که از قرار دادن حساب خود در اختیار دیگران خودداری نمایند. از خدمات سایت، تنها برای حساب شخصی خود استفاده نموده و مسئولیت استفاده از خدمات ${nameProject} برای فردی دیگر، به عهده کاربر خواهد بود. شماره حساب اعلام شده به سایت باید متعلق به کاربر بوده و کاربران مجاز به دادن شماره حساب متعلق به اشخاص دیگر نیستند.`,
|
||||
`• کاربران میپذیرند در صورت تشخیص کارشناسان پشتیبانی، جهت حفظ امنیت دارایی حساب کاربریشان با اطلاع قبلی نسبت به برقراری تماس تصویری با تیم پشتیبان همکاری نمایند.`,
|
||||
`• هرگونه سهلانگاری کاربران در حفظ اطلاعات شخصی و امنیتی از جمله: رمز عبور کاربر، سرقت گوشی کاربر، سرقت کارت ملی و مدارک شناسایی کاربر، سپردن مدارک شخصی و موبایل به فرد ثالث و ... به عهدهی شخص کاربر بوده و ${nameProject} هیچ گونه مسئولیتی در این موارد نخواهد داشت.`,
|
||||
`• اکیداً توصیه میشود از رمز عبوری پیچیده، امن و همچنین کد شناسایی دو عاملی استفاده شود.`,
|
||||
`• ${nameProject} این اطمینان را میدهد که داراییهای کاربران را نزد خود به امانت و به بهترین شکل و با بالاترین استانداردهای امنیتی ممکن حفظ نماید؛ در صورت بروز هرگونه مشکل امنیتی، ${nameProject} متعهد به جبران خسارت خواهد بود.`,
|
||||
`• به عنوان پلتفرم معاملات برخط فلزات گرانبها، هیچگونه مسئولیتی در قبال تصمیمات اقتصادی فی مابین کاربران و سود و زیان حاصل از آن بر عهده ${nameProject} نمیباشد.`,
|
||||
`• ${nameProject} حق اصلاح و تغییر قوانین و مقررات ذکر شده در این صفحه را چه به صورت کلی و چه به صورت جزئی دارد و نسخه نهایی را در این صفحه در معرض دید قرار میدهد. استفاده از خدمات ${nameProject} پس از اعمال تغییرات، به معنای پذیرش همه تغییرات میباشد.`,
|
||||
`• از لحظه خرید کاربران تا زمان تحویل طلای خریداری شده، مسئولیت حفظ و نگهداری اصل طلا بر عهده ${nameProject} میباشد.`,
|
||||
`• کاربران ${nameProject} اذعان میدارند که از ریسکهای اقتصادی مربوط به سرمایهگذاری در حوزه طلا مطلع بوده و با علم بر این موضوع اقدام به تبادل و سرمایهگذاری میکنند.`,
|
||||
`• ${nameProject} متعهد میشود در حد توان از حریم شخصی شما محافظت کند و در این راستا، تکنولوژی مورد نیاز در سایت و پلتفرم را برای هر چه مطمئنتر و امنتر شدن استفاده شما، توسعه دهد.`,
|
||||
`• در صورت بروز نوسان شدید در قیمت طلا و هرگونه رویداد برهمزننده نظم حاکم بر بازار طلا، ${nameProject} میتواند برای خرید و فروش طلا توسط کاربر سقف تعیین کند تا دو طرف متضرر نشوند.`,
|
||||
`• ${nameProject} مجاز است بدون اطلاع قبلی و به صلاحدید شخصی نسبت به توقف سفارشگیری جدید، معاملات (از جمله سفارشهای باز) را متوقف کند؛ بدیهی است که کلیه سفارشهای تکمیلشده قبل از توقف سفارشگیری، پردازش و تحویل داده خواهد شد.`,
|
||||
`• در صورت بروز هرگونه اختلال در اینترنت و خدمات زیرساخت به دلایل حاکمیتی، هیچگونه مسئولیتی به عهده ${nameProject} نمیباشد.`,
|
||||
`• درخواست برداشت ریال از حساب کاربری در سریعترین زمان ممکن پس از ثبت، بررسی خواهد شد. زمان واریز پول به حساب کاربران بر اساس محدودیتهای انتقال وجه بین بانکی، متفاوت خواهد بود. برای اطلاعات بیشتر، به قوانین انتقال وجه بین بانکی (پایا، ساتنا) مراجعه فرمایید.`,
|
||||
`• کاربر میپذیرد که به جز در موارد مورد تعهد، حق هیچگونه داعیه، طلب و شکایت از سایت، مدیران، کارمندان و افراد مرتبط با این سایت را نخواهد داشت.`,
|
||||
`• اگر کاربر تحت هر عنوان اشتباهاً یا من غیر حق، وجوهی را به حساب کاربر منظور یا در محاسبات خود هر نوع اشتباهی نماید، ${nameProject} هر زمان مجاز و مختار است راساً و مستقلاً و بدون انجام هیچگونه تشریفات اداری و قضایی و دریافت اجازه کتبی از متعهد (صاحب حساب) در رفع اشتباه و برداشت از حسابهای وی اقدام نماید و تشخیص نسبت به وقوع اشتباه یا پرداخت بدون حق و لزوم برداشت از حساب معتبر خواهد بود و کاربر حق هرگونه اعتراض و ادعایی را در خصوص نحوه عملکرد ${nameProject} از هر جهت از خود ساقط مینماید.`,
|
||||
`• در صورت بروز هرگونه مشکل یا ابهام در هر یک از معاملات (مانند دستکاری قیمت، اختلال در وبسرویسها، انجام معامله خارج از دامنه نوسان و ...)، ${nameProject} حق دارد مستقلاً آن معامله را ابطال کرده و داراییهای هر یک از طرفین را به حساب خودشان عودت دهد. بدیهی است در صورتی که اشکال از سمت ${nameProject} باشد، شرکت موظف خواهد بود که جبران خسارت نماید و در غیر این صورت، کاربر حق هرگونه اعتراض و ادعایی در خصوص نحوه عملکرد از هر جهت را از خود ساقط مینماید.`,
|
||||
`• در صورت فوت یا حجر کاربر، ${nameProject} پیرو قوانین جمهوری اسلامی ایران میباشد. کاربر با علم و اطلاع از مقررات این بند نسبت به افتتاح حساب کاربری در ${nameProject} اقدام نموده و کاربر، اشخاص ثالث، ورثه یا قائممقام قانونی ایشان حق اعتراض و یا ادعایی در آینده در این خصوص نخواهند داشت.`,
|
||||
`• هزینه خدمات و کارمزد تراکنشهای مالی انجام شده در مطابق با توضیحات ارائه شده در صفحه راهنمای استفاده از ${nameProject} میباشد.`,
|
||||
`• تمامی علائم تجاری، طرحهای گرافیکی، رابط کاربری، رابط بصری، عکس، لوگو، کدهای نرمافزار، ساختار، نحوه بیان، تنظیم مطالب و محتوای موجود در ${nameProject} و شبکههای متعلق به ${nameProject} و بهطور کلی، سایر حقوق و امتیازات مربوطه منحصراً در مالکیت ${nameProject} میباشد و هیچ شخصی حق استفاده از آن را بدون رضایت ${nameProject} ندارد.`,
|
||||
`• اگر هر یک از مفاد این موافقتنامه بر اساس هر قانون لازمالاجرا، نامعتبر یا غیرقابل اجرا تشخیص داده شود، این امر بر اعتبار هیچ ماده دیگری تأثیری نخواهد داشت و بقیه مقررات اجرا میشود.`,
|
||||
]
|
||||
|
||||
if (!isBoursecu) {
|
||||
return items
|
||||
}
|
||||
|
||||
const boursecuItems = items.map(replaceGoldWithCopper)
|
||||
|
||||
boursecuItems[11] = `• از لحظه خرید کاربران تا زمان تحویل مس خریداری شده، مسئولیت حفظ و نگهداری آن بر عهده ${nameProject} میباشد. در معاملات دارای تحویل فیزیکی، خریدار موظف است در مهلت تعیینشده نسبت به دریافت کالا اقدام نماید. هزینههای حمل، بارگیری، بیمه و سایر هزینههای جانبی مطابق شرایط هر معامله تعیین خواهد شد.`
|
||||
|
||||
boursecuItems[12] = `• کاربران ${nameProject} اذعان میدارند که قیمت مس تابع شرایط بازارهای داخلی و بینالمللی بوده و از ریسکهای اقتصادی مربوط به سرمایهگذاری در حوزه مس مطلع بوده و با علم بر این موضوع اقدام به تبادل و سرمایهگذاری میکنند. ${nameProject} هیچگونه تضمینی نسبت به سودآوری سرمایهگذاری ارائه نمیکند.`
|
||||
|
||||
boursecuItems[16] = `• در شرایط فورس ماژور از جمله جنگ، تحریم، اختلال گسترده در زیرساختهای ارتباطی، بلایای طبیعی، تصمیمات حاکمیتی و سایر شرایط خارج از کنترل، ${nameProject} مسئولیتی نسبت به تأخیر یا عدم امکان ارائه خدمات نخواهد داشت.`
|
||||
|
||||
boursecuItems[20] = `• کاربران ${nameProject} متعهد میشوند از بستر ${nameProject} برای معاملات صوری، دستکاری قیمت، تبانی، پولشویی، ارائه اطلاعات خلاف واقع یا هرگونه فعالیت غیرقانونی استفاده ننمایند. در صورت بروز هرگونه مشکل یا ابهام در هر یک از معاملات (مانند دستکاری قیمت، اختلال در وبسرویسها، انجام معامله خارج از دامنه نوسان و ...)، ${nameProject} حق دارد مستقلاً آن معامله را ابطال کرده و داراییهای هر یک از طرفین را به حساب خودشان عودت دهد. بدیهی است در صورتی که اشکال از سمت ${nameProject} باشد، شرکت موظف خواهد بود که جبران خسارت نماید و در غیر این صورت، کاربر حق هرگونه اعتراض و ادعایی در خصوص نحوه عملکرد از هر جهت را از خود ساقط مینماید.`
|
||||
|
||||
return boursecuItems
|
||||
return getRulesBlocks(nameProject, isBoursecu).flatMap((block) => block.items)
|
||||
}
|
||||
|
||||
export function getSupplementaryRulesTitle(isBoursecu: boolean) {
|
||||
return isBoursecu ? 'مقررات تکمیلی معاملات مس' : null
|
||||
export function getSupplementaryRulesTitle(_isBoursecu: boolean) {
|
||||
return null
|
||||
}
|
||||
|
||||
export function getSupplementaryRulesItems(nameProject: string, isBoursecu: boolean) {
|
||||
if (!isBoursecu) {
|
||||
return []
|
||||
}
|
||||
|
||||
return [
|
||||
`• کلیه فروشندگان موظفاند مشخصات فنی، آنالیز شیمیایی، استاندارد تولید، وزن و سایر ویژگیهای کالا را بهصورت صحیح و کامل اعلام نمایند. مسئولیت صحت اطلاعات ارائهشده بر عهده فروشنده است.`,
|
||||
`• در صورت اختلاف در کیفیت، وزن یا مشخصات فنی کالا، مرجع داوری و کارشناسی مورد تأیید ${nameProject} ملاک رسیدگی خواهد بود.`,
|
||||
`• ${nameProject} مجاز است در راستای اجرای قوانین مبارزه با پولشویی، تأمین مالی تروریسم و سایر مقررات حاکم، اطلاعات تکمیلی از کاربران درخواست نموده و در صورت لزوم نسبت به محدودسازی یا تعلیق حساب کاربری اقدام نماید.`,
|
||||
`• تمامی سوابق ثبتشده در سامانه شامل سفارشها، معاملات، پیامهای سیستمی، لاگهای امنیتی و اطلاعات ثبتشده در پایگاه داده، بهعنوان مستندات معتبر بین طرفین قابل استناد خواهد بود.`,
|
||||
`• ${nameProject} حق تعلیق یا مسدودسازی حساب کاربران متخلف را بدون ایجاد حق مطالبه خسارت برای کاربر محفوظ میدارد.`,
|
||||
]
|
||||
export function getSupplementaryRulesItems(_nameProject: string, _isBoursecu: boolean) {
|
||||
return []
|
||||
}
|
||||
|
||||
@@ -38,7 +38,12 @@
|
||||
<!-- <BasicInput v-model:value="userFormState.password" size="large" place-holder="کلمه عبور"/>-->
|
||||
<AInputPassword v-model:value="userFormState.password" place-holder="کلمه عبور" />
|
||||
</a-form-item>
|
||||
<a-form-item :rules="[required()]" class="home_appear_fade_in_down" label="کد معرف" name="referral_id">
|
||||
<a-form-item
|
||||
:rules="isBoursecuProject() ? [] : [required()]"
|
||||
class="home_appear_fade_in_down"
|
||||
label="کد معرف"
|
||||
name="referral_id"
|
||||
>
|
||||
<BasicInput :disabled="disableForm" v-model:value="userFormState.referral_id" place-holder="کد معرف"/>
|
||||
</a-form-item>
|
||||
<!-- <a-form-item v-if="URLUserType() === 'customer'" :rules="[required()]" class="home_appear_fade_in_down"
|
||||
|
||||
Reference in New Issue
Block a user