184 lines
6.3 KiB
Vue
184 lines
6.3 KiB
Vue
<template>
|
||
<div>
|
||
<div class="jahat__sidebar scroll-needed">
|
||
<ul class="sidebar-menu sidebar-menu--simple">
|
||
<li>
|
||
<router-link :to="{name:'issues'}" class="text__14">مسائل جدید</router-link>
|
||
</li>
|
||
<li>
|
||
<router-link :to="{name:'issues'}" class="text__14">مسائل مرتبط</router-link>
|
||
</li>
|
||
<li>
|
||
<router-link :to="{name:'issues'}" class="text__14">مسائل پیشنهادی</router-link>
|
||
</li>
|
||
<li>
|
||
<router-link :to="{name:'issues'}" class="text__14">مسائل کلان</router-link>
|
||
</li>
|
||
<li>
|
||
<router-link :to="{name:'issues'}" class="text__14">ایده ها</router-link>
|
||
</li>
|
||
<li>
|
||
<router-link :to="{name:'issues'}" class="text__14">مسائل حل شده</router-link>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="jahat__content-container">
|
||
<div class="jahat__content">
|
||
<div class="dashboard">
|
||
<div class="my-profile__container" style="position: relative">
|
||
<div class="my-profile">
|
||
<div class="my-profile__form">
|
||
<form action="">
|
||
<div class="form-row">
|
||
<label for="">نام</label>
|
||
<input type="text" placeholder="کاظم" />
|
||
</div>
|
||
<div class="form-row">
|
||
<label for="">نام خانوادگی</label>
|
||
<input type="text" placeholder="رحیمی" />
|
||
</div>
|
||
<div class="form-row">
|
||
<label for="">تلفن همراه</label>
|
||
<input type="text" placeholder="۰۹۱۹۲۵۱۳۰۱۱" />
|
||
</div>
|
||
<div class="form-row">
|
||
<label for="">نام کاربری</label>
|
||
<input type="text" placeholder="@rahim_arbab" />
|
||
</div>
|
||
<div class="form-row">
|
||
<label for="">پست الکترونیک</label>
|
||
<input type="text" placeholder="rahimearbab@gmail.com" />
|
||
</div>
|
||
<div class="border"></div>
|
||
<div class="text text__gray">اطلاعات بیشتر <span>( موارد را با ویرگول «،» جدا کنید )</span></div>
|
||
<div class="form-row form-row--text-area">
|
||
<label for="">تخصص ها</label>
|
||
<!-- <textarea v-model="user_properties.skills.value" cols="30" rows="10" placeholder="مهارتها و تخصصهای علمی"></textarea> -->
|
||
<!-- <textarea v-model="userInfo.skills.value" cols="30" rows="10" placeholder="مهارتها و تخصصهای علمی"></textarea> -->
|
||
<vue-select dir="rtl" multiple taggable v-model="userInfo.skills.value" :options="skills"></vue-select>
|
||
</div>
|
||
<div class="form-row form-row--text-area">
|
||
<label for="">علاقمندی ها</label>
|
||
<vue-select dir="rtl" multiple taggable v-model="userInfo.favorites.value" :options="favorites" ></vue-select>
|
||
<!-- <textarea v-model="userInfo.favorites.value" cols="30" rows="10" placeholder="موضوعات مورد علاقه ( دغدغه شما )"></textarea> -->
|
||
</div>
|
||
|
||
<div class="popUp-tab__buttons px-0">
|
||
<a href="javascript:void(0)" class="popUp-tab__submit" @click="saveUserInfo()">ثبت</a>
|
||
</div>
|
||
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
|
||
import { mapActions, mapState } from 'vuex';
|
||
import {GET_PERSONAL_INFO} from "../../../store/modules/profile.module";
|
||
export default {
|
||
name: "Dashboard",
|
||
|
||
data(){
|
||
return{
|
||
user_properties:{
|
||
skills:{
|
||
id: 2,
|
||
value: '',
|
||
|
||
},
|
||
favorites:{
|
||
id: 1,
|
||
value: ''
|
||
}
|
||
},
|
||
errors: {},
|
||
|
||
skills: [],
|
||
favorites: []
|
||
|
||
}
|
||
},
|
||
|
||
computed: {
|
||
...mapState(['currentUserPersonalInfo']),
|
||
|
||
userInfo(){
|
||
let userInfo = this.currentUserPersonalInfo;
|
||
let user_properties = this.user_properties;
|
||
|
||
if(userInfo && userInfo.properties && Object.keys(userInfo.properties).length > 0){
|
||
let skills = [];
|
||
let favorites = [];
|
||
|
||
if(userInfo.properties.skills.length > 0){
|
||
userInfo.properties.skills.forEach((skill) => {
|
||
skills.push({id: skill.values.id, label: skill.values.title});
|
||
});
|
||
}
|
||
if(userInfo.properties.favorites.length > 0){
|
||
userInfo.properties.favorites.forEach((favorite) => {
|
||
favorites.push({id: favorite.values.id, label: favorite.values.title});
|
||
});
|
||
}
|
||
|
||
user_properties.skills.value = skills;
|
||
user_properties.favorites.value = favorites;
|
||
}
|
||
return user_properties;
|
||
}
|
||
},
|
||
|
||
methods: {
|
||
...mapActions([ 'checkPermissions', 'SAVE_USER_PROPERTIES', 'GET_PERSONAL_INFO']),
|
||
saveUserInfo(){
|
||
let data = {...this.user_properties};
|
||
let self = this;
|
||
|
||
this.SAVE_USER_PROPERTIES(data).then(response => {
|
||
}).catch(errors => {
|
||
self.errors = errors.data.errors;
|
||
});
|
||
},
|
||
|
||
getProfileData(){
|
||
let self = this;
|
||
ApiService.get(
|
||
null,
|
||
"profile/skills-favorites",
|
||
function(response) {
|
||
response.data.favorites.forEach(item => {
|
||
let data = {
|
||
id: item.id,
|
||
label: item.title
|
||
}
|
||
self.favorites.push(data);
|
||
});
|
||
response.data.skills.forEach(item => {
|
||
let data = {
|
||
id: item.id,
|
||
label: item.title
|
||
}
|
||
self.skills.push(data);
|
||
});
|
||
},
|
||
function() {
|
||
}
|
||
);
|
||
}
|
||
},
|
||
|
||
mounted(){
|
||
this.GET_PERSONAL_INFO();
|
||
this.getProfileData();
|
||
// this.checkPermissions({ permission: "", _this: this })
|
||
|
||
}
|
||
};
|
||
</script>
|