205 lines
6.5 KiB
Vue
205 lines
6.5 KiB
Vue
<template>
|
|
<div class="flex justify-between flex-col text-[#383E43]">
|
|
<div class="relative">
|
|
<img
|
|
v-if="authUser.avatarMedia"
|
|
:src="authUser?.avatarMedia"
|
|
class="w-[40.256vw] md:w-[8.177vw] h-[40.256vw] md:h-[8.177vw] rounded-[50%]"
|
|
alt="profile"
|
|
/>
|
|
<img
|
|
v-else
|
|
src="/public/images/alt.png"
|
|
class="w-[40.256vw] md:w-[8.177vw] h-[40.256vw] md:h-[8.177vw] rounded-[50%]"
|
|
alt="profile"
|
|
/>
|
|
<label for="file-upload" class="custom-file-upload">
|
|
<svg
|
|
class="h-[10.769vw] md:h-[2.188vw] w-[10.769vw] md:w-[2.188vw] absolute -bottom-[0.2vw] right-[4vw] md:right-[0.7vw]"
|
|
viewBox="0 0 42 42"
|
|
fill="none"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
>
|
|
<circle cx="21" cy="21" r="21" fill="#0D3F40" />
|
|
<path
|
|
d="M10.167 19.9167V17.75C10.167 13.9583 12.3337 12.3333 15.5837 12.3333H26.417C29.667 12.3333 31.8337 13.9583 31.8337 17.75V24.25C31.8337 28.0417 29.667 29.6667 26.417 29.6667H21.0003"
|
|
stroke="white"
|
|
stroke-width="2"
|
|
stroke-miterlimit="10"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
<path
|
|
d="M21.0003 23.7083C22.4961 23.7083 23.7087 22.4958 23.7087 21C23.7087 19.5042 22.4961 18.2917 21.0003 18.2917C19.5046 18.2917 18.292 19.5042 18.292 21C18.292 22.4958 19.5046 23.7083 21.0003 23.7083Z"
|
|
stroke="white"
|
|
stroke-width="2"
|
|
stroke-miterlimit="10"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
<path
|
|
d="M28.042 18.2917V23.7083"
|
|
stroke="white"
|
|
stroke-width="2"
|
|
stroke-miterlimit="10"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
<path
|
|
d="M10.167 24.7917H15.952C16.6454 24.7917 17.2087 25.355 17.2087 26.0483V27.435"
|
|
stroke="white"
|
|
stroke-width="1.5"
|
|
stroke-miterlimit="10"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
<path
|
|
d="M11.4886 23.47L10.167 24.7917L11.4886 26.1133"
|
|
stroke="white"
|
|
stroke-width="1.5"
|
|
stroke-miterlimit="10"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
<path
|
|
d="M17.2087 30.5117H11.4236C10.7303 30.5117 10.167 29.9483 10.167 29.255V27.8683"
|
|
stroke="white"
|
|
stroke-width="1.5"
|
|
stroke-miterlimit="10"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
<path
|
|
d="M15.8887 31.8337L17.2103 30.512L15.8887 29.1903"
|
|
stroke="white"
|
|
stroke-width="1.5"
|
|
stroke-miterlimit="10"
|
|
stroke-linecap="round"
|
|
stroke-linejoin="round"
|
|
/>
|
|
</svg>
|
|
</label>
|
|
<input type="file" id="file-upload" @change="changePhoto"/>
|
|
</div>
|
|
<FormKit
|
|
type="form"
|
|
@submit="edit"
|
|
:incomplete-message="false"
|
|
:actions="false"
|
|
>
|
|
<div
|
|
class="relative items-center gap-[5vw] md:gap-0 grid grid-cols-1 md:grid-cols-2 mt-[2vw] w-full md:w-[65%]"
|
|
>
|
|
<div class="flex flex-col space-y-[0.2vw] mb-[0.5vw]">
|
|
<label for="" class="text-[3.19vw] md:text-[0.833vw] font-[400]"
|
|
>شماره موبایل</label
|
|
>
|
|
<input
|
|
type="text"
|
|
name="name"
|
|
:value="authUser?.phone"
|
|
readonly
|
|
class="bg-[#F5F5F5] h-[13.59vw] md:h-[2.969vw] w-full md:w-[19.01vw] rounded-[2.564vw] md:rounded-[0.521vw] px-[1vw]"
|
|
/>
|
|
</div>
|
|
<div class="flex flex-col space-y-[0.2vw] mb-[0.5vw]">
|
|
<label for="" class="text-[3.19vw] md:text-[0.833vw] font-[400]"
|
|
>نام و نام خانوادگی</label
|
|
>
|
|
<FormKit
|
|
name="name"
|
|
:value="authUser?.name"
|
|
type="text"
|
|
input-class="bg-[#F5F5F5] h-[13.59vw] md:h-[2.969vw] w-full md:w-[19.01vw] rounded-[2.564vw] md:rounded-[0.521vw] px-[1vw]"
|
|
/>
|
|
</div>
|
|
<div class="flex flex-col space-y-[0.2vw]">
|
|
<label for="" class="text-[3.19vw] md:text-[0.833vw] font-[400]"
|
|
>نام کاربری</label
|
|
>
|
|
<FormKit
|
|
name="userName"
|
|
:value="authUser?.userName"
|
|
type="text"
|
|
input-class="bg-[#F5F5F5] h-[13.59vw] md:h-[2.969vw] w-full md:w-[19.01vw] rounded-[2.564vw] md:rounded-[0.521vw] px-[1vw]"
|
|
/>
|
|
</div>
|
|
<div class="flex flex-col space-y-[0.2vw]">
|
|
<label for="" class="text-[3.19vw] md:text-[0.833vw] font-[400]"
|
|
>ایمیل</label
|
|
>
|
|
<FormKit
|
|
name="email"
|
|
:value="authUser?.email"
|
|
type="text"
|
|
input-class="bg-[#F5F5F5] h-[13.59vw] md:h-[2.969vw] w-full md:w-[19.01vw] rounded-[2.564vw] md:rounded-[0.521vw] px-[1vw]"
|
|
/>
|
|
</div>
|
|
<FormKit
|
|
input-class="
|
|
text-[3.59vw] md:text-[0.833vw] absolute md:left-[1vw] top-[80vw] md:top-[11vw] greenButton h-[13.59vw]
|
|
md:h-[2.813vw] w-full md:w-[8.438vw] rounded-[2.564vw] md:rounded-[0.521vw] flexBox px-0
|
|
"
|
|
type="submit"
|
|
>
|
|
ویرایش
|
|
</FormKit>
|
|
</div>
|
|
</FormKit>
|
|
</div>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
import { useToast } from "vue-toastification";
|
|
const toast = useToast();
|
|
const { authUser } = useAuth();
|
|
const loading = ref(false);
|
|
const name = ref("avater");
|
|
const edit = async (formData) => {
|
|
try {
|
|
loading.value = true;
|
|
await $fetch("/api/user/update", {
|
|
method: "PUT",
|
|
body: formData,
|
|
});
|
|
location.reload();
|
|
} catch (error) {
|
|
toast.error(error);
|
|
} finally {
|
|
loading.value = false;
|
|
}
|
|
};
|
|
async function changePhoto(val) {
|
|
|
|
const formData = new FormData();
|
|
formData.append('file', val.target.files[0]);
|
|
formData.append('directoryName', name.value);
|
|
|
|
try {
|
|
const dataa = await $fetch("/api/uploader", {
|
|
method: "POST",
|
|
body: formData
|
|
});
|
|
console.log('dataa',dataa);
|
|
} catch (error) {
|
|
console.log('error client', error.data.data.message);
|
|
}
|
|
// console.log('ss', formData);
|
|
|
|
// const data = await useFetch("api/uploader", {
|
|
// method: 'POST',
|
|
// body: formData
|
|
// });
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
input[type="file"] {
|
|
display: none;
|
|
}
|
|
|
|
.custom-file-upload {
|
|
cursor: pointer;
|
|
}
|
|
</style> |