add educate page

This commit is contained in:
2026-02-01 16:20:13 +03:30
parent 4cbe3b6b0d
commit b2b8b70099
13 changed files with 304 additions and 389 deletions
+12 -6
View File
@@ -40,12 +40,7 @@
</div>
</div>
</div>
<div class="wrap-fix bottom-0 px-10 py-6 flex gap-2 bg-white">
<!-- <a href="https://t.me/saminn_gold">-->
<!-- <img src="@/assets/img/telegram.png" alt="" class="h-10 w-10"/>-->
<!-- </a>-->
<!-- garoosi-->
<div v-if="config.config.name === 'garoosi'" class="wrap-fix bottom-0 px-10 py-6 flex gap-2 bg-white">
<a class="w-full" href="tel:09931127454">
<BasicButton class="w-full" type="primary">تماس با پشتیبانی</BasicButton>
</a>
@@ -53,6 +48,14 @@
<img src="@/assets/img/bale.png" alt="" class="h-10 w-10"/>
</a>
</div>
<div v-else class="wrap-fix bottom-0 px-10 py-6 flex gap-2 bg-white">
<!-- <a class="w-full" href="tel:09931127454">-->
<BasicButton class="w-full" type="primary">تماس با پشتیبانی</BasicButton>
<!-- </a>-->
<!-- <a href="https://t.me/saminn_gold">-->
<img src="@/assets/img/telegram.png" alt="" class="h-10 w-10"/>
<!-- </a>-->
</div>
</div>
</div>
<!-- <ActionSheet v-model:show="editPassVisible">salam</ActionSheet>-->
@@ -78,6 +81,9 @@ import { useUserStore } from '@/store/userStore'
import BaseDatePicker from '@/components/BasicPacks/BaseDatePicker'
import img_pattern from "@/views/login/assets/img/pattern.svg";
import {useConfigStore} from "@/store/configStore";
import {useConfigStore} from "@/store/configStore";
const config=useConfigStore()
const userFormState = ref<User>({
fname: '',
+232
View File
@@ -0,0 +1,232 @@
<template>
<div>
<div class="wrap-fix z-1 bg-white py-3 px-3 text-black font-bold drop-shadow flex">
<div @click="router.back()" class="cursor-pointer">
<BasicIcon icon="vuesax-linear:arrow-right-1" />
</div>
<div class="mr-2">آموزش نرم افزار</div>
</div>
<div class="pt-10">
<div>
<!-- <img :src="img" alt="" class="mt-2 w-full absolute bottom-0" />-->
<!-- <img :src="config.config.avatar" alt="" class="mt-2 w-full absolute bottom-0">-->
</div>
<div class="text-justify text-base z-200000 relative">
<div class="px-10">
<div class="h-20vh flex justify-center">
<img :src="config.config.avatar" alt="" class="mb-20 h-15vh mt-5">
</div>
<div class="overflow-y-auto h-60vh pb-10 border-[#093D51]">
<div
class="mt-5 text-5 border-solid border-2 border-[#093D51] text-[#093D51] rounded-[12px] p-4"
>
<div class="mt-3 text-sm font-bold text-[#093D51]">
«بخش خرید محصول به‌صورت ۲۴ ساعته فعال نیست و فقط در روزهای کاری، بین ساعت ۱۳ تا ۱۸ امکان ثبت سفارش وجود دارد.»
</div>
<div class="w-full h-1px my-3 bg-secondary"></div>
<div class="font-bold text-sm text-[#093D51]">
شیوهٔ ثبت ‌نام در گروسی گالری
</div>
<div class="mt-5 text-xs leading-5">
• برای ثبت‌نام در گروسی گالری، اگر قبلاً حساب کاربری دارید می‌توانید از طریق پیامک وارد شوید.<br />
• اگر حساب کاربری ندارید، "از این قسمت" وارد صفحه ثبت نام شده و با وارد کردن نام و شماره تلفنی که با کد ملی شما مطابقت دارد، حساب کاربری بسازید.<br />
• الزامی به وارد کردن کد معرف نیست.
</div>
<img :src="img1" />
<div class="w-full h-1px my-3 bg-secondary"></div>
<div class="font-bold mt-4 text-sm text-[#093D51]">
شارژ کیف پول
</div>
<div class="mt-5 text-xs leading-5">
• ابتدا کیف پول را در منو انتخاب کرده، مبلغ مورد نظر را وارد نموده و دکمه واریز را انتخاب کنید تا کیف پول شما شارژ شود.<br />
</div>
<img :src="img2" />
<div class="w-full h-1px my-3 bg-secondary"></div>
<div class="font-bold mt-4 text-sm text-[#093D51]">
شیوهٔ خرید از گروسی گالری
</div>
<div class="mt-5 text-xs leading-5">
• سپس از بخش «خرید و فروش» انتخاب کنید که طلای آب‌شده می‌خواهید یا گنج (شامل گوی، شمش یا مکعب).<br />
• توجه داشته باشید کارمزد طلای آب‌شده حدود ۲٪ است و کارمزد ریالی گنج در پایین صفحه قیمت درج شده است.
</div>
<img :src="img4" />
<div class="w-full h-1px my-3 bg-secondary"></div>
<div class="font-bold mt-4 text-sm text-[#093D51]">
شیوهٔ فروش در گروسی گالری
</div>
<div class="mt-5 text-xs leading-5">
• برای فروش محصولاتی که خریداری کرده‌اید، ابتدا مقدار فروش خود را در اپلیکیشن بله به پشتیبانی به شماره 09931127454 اطلاع دهید.<br />
• سپس به بخش «خرید و فروش» مراجعه کرده، محصول موردنظر را انتخاب و گزینه فروش را بزنید تا مبلغ قابل دریافت نمایش داده شود.<br />
• مبلغ به کیف پول شما واریز می‌شود و از طریق پیام پشتیبانی می‌توانید درخواست برداشت دهید.<br />
• اگر موجودی کیف پول بیش از ۱۰ میلیون تومان باشد، مبلغ تا پایان روز کاری بعد به حساب اعلام‌شده شما واریز خواهد شد.
</div>
<div class="w-full h-1px my-3 bg-secondary"></div>
<div class="font-bold mt-4 text-sm text-[#093D51]">
شیوهٔ دریافت فیزیکی طلا (ارسال)
</div>
<div class="mt-5 text-xs leading-5">
• ابتدا موجودی محصول موردنظر را با پشتیبانی در واتساپ هماهنگ کنید.<br />
• سپس روی لوگو کلیک کرده، گزینه «برداشت فیزیکی» و بعد «درخواست جدید» را انتخاب کنید.<br />
• محصولات خریداری‌شده و تعداد آن‌ها را مشخص کرده و آدرس خود را ثبت نمایید.<br />
• پشتیبانی عکس و وزن محصول را برای شما ارسال می‌کند.<br />
• ارسال به‌صورت پس‌کرایه و بیمه‌شده انجام می‌شود.<br />
• توجه داشته باشید گوی معمولاً ۳ تا ۷ روز کاری بعد آماده ارسال است و شمش‌های مینیاتوری ۵ تا ۱۵ روز کاری پس از ثبت درخواست آماده خواهند شد.
</div>
<div class="w-full h-1px my-3 bg-secondary"></div>
<div class="font-bold mt-4 text-sm text-[#093D51]">
پاداش معرفی
</div>
<div class="mt-5 text-xs leading-5">
• در صفحه اصلی روی "تنظیمات" کلیک کرده و وارد حساب کاربری خود شوید.
</div>
<!-- <img :src="img2" />-->
<div class="mt-5 text-xs leading-5">
• سپس گزینه «اشتراک‌گذاری» یا «کپی لینک» را انتخاب کرده و لینک دعوت را برای دوستانتان ارسال کنید.<br />
• در صورتی که دوستان شما از طریق لینک شما ثبت‌نام کنند، به‌صورت خودکار ۱ سوت طلا به‌عنوان پاداش دریافت خواهید کرد.
</div>
<!-- <img :src="img3" />-->
</div>
</div>
</div>
<div v-if="config.config.name === 'garoosi'" class="wrap-fix bottom-0 px-10 py-6 flex gap-2 bg-white">
<a class="w-full" href="tel:09931127454">
<BasicButton class="w-full" type="primary">تماس با پشتیبانی</BasicButton>
</a>
<a href="https://ble.ir/garoosi_gallery">
<img src="@/assets/img/bale.png" alt="" class="h-10 w-10"/>
</a>
</div>
<div v-else class="wrap-fix bottom-0 px-10 py-5 flex gap-2 bg-white">
<a class="w-full" href="">
<BasicButton class="w-full" type="primary">تماس با پشتیبانی</BasicButton>
</a>
<a href="">
<BasicButton icon="vuesax-linear:whatsapp" />
</a>
</div>
</div>
</div>
<!-- <ActionSheet v-model:show="editPassVisible">salam</ActionSheet>-->
</div>
</template>
<script lang="ts" setup>
import { onMounted, reactive, ref } from 'vue'
import img from '@/assets/img/user_ly1.svg'
import img1 from '@/assets/img/1.png'
import img2 from '@/assets/img/2.png'
import img4 from '@/assets/img/4.png'
import { loading } from '@/utils'
import BasicButton from '@/components/BasicPacks/BasicButton.vue'
import type { User } from '@/models/login'
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
import router from '@/router'
import type { FormInstance } from 'ant-design-vue'
import { message } from 'ant-design-vue'
import { updateMe } from '@/api/me'
import { useUserStore } from '@/store/userStore'
import {useConfigStore} from "@/store/configStore";
const config=useConfigStore()
const userFormState = ref<User>({
fname: '',
lname: '',
mobile: undefined,
birth_date: '',
phone_number: '',
province: '',
city: '',
n_code: undefined
})
const formRef = ref<FormInstance>()
const userStore = useUserStore()
// const editPassVisible = ref<boolean>(false)
const editPassVisible = ref<boolean>(false)
function setForm() {
userFormState.value = userStore.userInfo
}
function copyCode() {
// nextTick(() => {
const val = userStore.userInfo?.referral_id
navigator.clipboard.writeText(val)
message.info('کد رونوشت شد')
// })
}
function shareCode() {
// nextTick(() => {
const val = `🌟طلای ساخته شده یا آبشده فرقی نداره از ۱۰۰ تومن طلا بخر
با خرید مستمر گنج حتی با مبالغ کم پس‌اندازتو طلایی کن!
این دعوت نامه از طرف "${userStore.userInfo?.name}" عزیز برای شما ارسال شده تا شما هم عضو گنج طلای افجود بشید .
روی لینک زیر کلیک کنید و ثبت نام خود را تکمیل کنید.
afjod.com/login?id=${userStore.userInfo?.referral_id}`
navigator.share({
title: 'افجود',
text: val
})
// message.info('کد رونوشت شد')
// })
}
const resetData = () => {
formRef.value?.resetFields()
userFormState.value = {
fname: '',
lname: '',
mobile: undefined,
birth_date: '',
phone_number: '',
province: '',
city: '',
n_code: undefined
}
}
onMounted(() => {
setForm()
})
function ok() {
formRef.value?.validateFields().then(async () => {
try {
loading.value = true
await updateMe(userFormState.value)
await userStore.getMyInfo()
editPassVisible.value = false
message.success('اطلاعات شما با موفقیت به روز رسانی شد')
} catch (e) {
console.log(e)
} finally {
loading.value = false
}
})
}
</script>
<style scoped>
/*.fade-enter-active,
.fade-leave-active {
transition: opacity 0.2s ease;
}
.fade-enter-from,
.fade-leave-to {
opacity: 0;
}*/
/*.trans{
transition: height 1s;
}*/
</style>
@@ -16,12 +16,7 @@
<div class=" font-bold text-sm text-primary text-center">جواز کسب و کار</div>
<!-- <img :src="permission1" alt="" class="w-full">-->
<div class="mt-5 text-xs"></div>
<div class="wrap-fix bottom-0 px-2 py-6 flex gap-2 bg-white">
<!-- <a href="https://t.me/saminn_gold">
<img src="@/assets/img/telegram.png" alt="" class="h-10 w-10"/>
</a>-->
<!-- garoosii-->
<div v-if="config.config.name === 'garoosi'" class="wrap-fix bottom-0 px-2 py-6 flex gap-2 bg-white">
<a class="w-full" href="tel:09931127454">
<BasicButton class="w-full" type="primary">تماس با پشتیبانی</BasicButton>
</a>
@@ -29,6 +24,14 @@
<img src="@/assets/img/bale.png" alt="" class="h-10 w-10"/>
</a>
</div>
<div v-else class="wrap-fix bottom-0 px-2 py-6 flex gap-2 bg-white">
<!-- <a href="https://t.me/saminn_gold">-->
<img src="@/assets/img/telegram.png" alt="" class="h-10 w-10"/>
<!-- </a>-->
<!-- <a class="w-full" href="tel:09931127454">-->
<BasicButton class="w-full" type="primary">تماس با پشتیبانی</BasicButton>
<!-- </a>-->
</div>
</div>
</div>
</div>
@@ -43,9 +46,6 @@ import img from '@/assets/img/user_ly1.svg'
// import gr_bottom from './assets/img/gr_bottom_white.svg'
import { loading } from '@/utils'
import BasicButton from '@/components/BasicPacks/BasicButton.vue'
import BasicActionSheet from '@/components/BasicPacks/BasicActionSheet.vue'
import { lengthValidation, required } from '@/utils/inputRules'
import BasicInput from '@/components/BasicPacks/BasicInput.vue'
import type { User } from '@/models/login'
import BasicIcon from '@/components/BasicPacks/BasicIcon.vue'
import router from '@/router'
@@ -53,8 +53,10 @@ import type { FormInstance } from 'ant-design-vue'
import { message } from 'ant-design-vue'
import { updateMe } from '@/api/me'
import { useUserStore } from '@/store/userStore'
import BaseDatePicker from '@/components/BasicPacks/BaseDatePicker'
import {useConfigStore} from "@/store/configStore";
import {useConfigStore} from "@/store/configStore";
const config=useConfigStore()
const userFormState = ref<User>({
fname: '',
+7 -2
View File
@@ -298,12 +298,16 @@
<div class="mt-2">
<span>جهت شارژ حساب کاربری خود، کلمه "شماره حساب" را برای پشتیبانی ارسال نمایید.</span>
</div>
<BasicButton class="mt-4">
<!-- garosii-->
<BasicButton v-if="config.config.name === 'garoosi'" class="mt-4">
<a class="w-full" href="https://ble.ir/garoosi_gallery">
پیام به پشتیبانی
</a>
</BasicButton>
<BasicButton v-else>
<a class="w-full" href="">
پیام به پشتیبانی
</a>
</BasicButton>
</div>
<template #footer>
@@ -355,6 +359,7 @@ const chargeAccountModal = ref<boolean>(false)
const showConfirmCode = ref<boolean>(false)
const refOtpInput = ref<InstanceType<typeof VOtpInput> | null>(null)
const config = useConfigStore()
onMounted(() => {
if (router.currentRoute.value.query.state === 'deposit') {
isDeposit.value = true