complete Complete User Request Submission section RAD-1

This commit is contained in:
2026-01-03 19:14:30 +03:30
commit 7137ec5792
393 changed files with 152602 additions and 0 deletions
@@ -0,0 +1,104 @@
<script setup lang="ts">
import {reactive, ref} from "vue";
import axios from "axios";
import {useToast} from "primevue/usetoast";
import Master from "../../../layouts/master.vue";
interface PasswordInterface {
password: string,
newPassword: string,
newPassword_confirmation: string,
}
const toast = useToast();
const loader = ref<boolean>(false);
const errors = ref<any>([]);
const ChangePasswordForm = reactive<PasswordInterface>({
password : '',
newPassword : '',
newPassword_confirmation : '',
});
const ChangePasswordHandler = () => {
loader.value = true;
axios.post('/admin/setting-profile/change-password' , ChangePasswordForm).then(res => {
if (res.status == 200){
toast.add({severity : 'success' , summary : res.data.message});
ChangePasswordForm.password = '';
ChangePasswordForm.newPassword = '';
ChangePasswordForm.newPassword_confirmation = '';
}
loader.value = false;
errors.value = [];
}).catch(error => {
errors.value = error.response.data.errors ?? [];
if (error.status == 401 && error.response.data.message){
toast.add({severity : 'error' , summary : error.response.data.message})
}
loader.value = false;
});
}
</script>
<template>
<master>
<Panel toggleable class="w-full !rounded-2xl bg-client-gray/10">
<template #header>
<div class="flex items-center gap-2">
<i class="fi fi-rr-lock"></i>
<span class="font-semibold text-sm">تغییر کلمه عبور</span>
</div>
</template>
<div class="grid grid-cols-1 gap-4 content-start">
<p class="mb-4 leading-7 text-sm !font-extralight">برای افزایش امنیت حساب کاربری خود، توصیه می‌شود که کلمه عبور خود را به طور دوره‌ای تغییر دهید. برای این کار، ابتدا کلمه عبور فعلی خود را وارد کنید، سپس کلمه عبور جدید را وارد کرده و آن را دوباره تایید کنید. توجه داشته باشید که کلمه عبور جدید باید حداقل 8 کاراکتر باشد و شامل ترکیبی از حروف، اعداد و نمادها باشد.</p>
<div class="m-auto">
<FloatLabel variant="on" class=" m-auto">
<Password id="password" type="password" :feedback="false"
appendTo="self" toggleMask
v-model="ChangePasswordForm.password"
class="placeholder:!font-light !text-sm !bg-white h-12 !border-gray-500/20 !text-client-Fontcolor"/>
<label for="on_label" class="!text-client-Fontcolor !bg-white !text-sm font-light">کلمه عبور فعلی</label>
</FloatLabel>
<Message
v-if="errors.password"
class="h-7 mt-1 !text-xs px-1"
variant="simple"
severity="error" size="small">{{errors.password[0]}}</Message>
</div>
<div class="m-auto">
<FloatLabel variant="on" class="m-auto">
<Password id="password" type="password" :feedback="false"
appendTo="self" toggleMask
v-model="ChangePasswordForm.newPassword"
class="placeholder:!font-light !text-sm !bg-white h-12 !border-gray-500/20 !text-client-Fontcolor"/>
<label for="on_label" class="!text-client-Fontcolor !bg-white !text-sm font-light"> کلمه عبور جدید</label>
</FloatLabel>
<Message
v-if="errors.newPassword"
class="h-7 mt-1 !text-xs px-1"
variant="simple"
severity="error" size="small">{{errors.newPassword[0]}}</Message>
</div>
<div class="m-auto">
<FloatLabel variant="on" class="m-auto">
<Password id="password" type="password" :feedback="false"
appendTo="self" toggleMask
v-model="ChangePasswordForm.newPassword_confirmation"
class="placeholder:!font-light !text-sm !bg-white h-12 !border-gray-500/20 !text-client-Fontcolor"/>
<label for="on_label" class="!text-client-Fontcolor !bg-white !text-sm font-light">تکرار کلمه عبور جدید</label>
</FloatLabel>
<Message
class="h-7 mt-1 !text-xs px-1"
variant="simple"
severity="error" size="small"></Message>
</div>
<Button @click="ChangePasswordHandler" :loading="loader" label=" تغییر کلمه عبور" severity="secondary"
class="m-auto flex flex-row-reverse items-center !font-normal" />
</div>
</Panel>
</master>
</template>