mirror of https://github.com/sunface/rust-course
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
6.4 KiB
142 lines
6.4 KiB
6 years ago
|
<template>
|
||
|
<div class="setting-profile margin-top-20">
|
||
|
<el-row v-if="user.id!=undefined">
|
||
|
<el-col :span="13" class="padding-left-20 padding-right-20">
|
||
|
<div>
|
||
|
<h4>Display name</h4>
|
||
|
<div class="meta-word font-size-12">Set a display name. This does not change your username.</div>
|
||
|
<el-input size="medium" class="margin-top-5 margin-bottom-5" v-model="user.nickname" :maxlength="30"></el-input>
|
||
|
<div class="meta-word font-size-12">{{30-user.nickname.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>About</h4>
|
||
|
<div class="meta-word font-size-12">A brief description of yourself shown on your profile.</div>
|
||
|
<el-input type="textarea" class="margin-top-5 margin-bottom-5" v-model="user.about" :maxlength="500"></el-input>
|
||
|
<div class="meta-word font-size-12">{{500-user.about.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>Website url</h4>
|
||
|
<el-input size="medium" placeholder="https://yoursite.com" v-model="user.website" :maxlength="30"></el-input>
|
||
|
<div class="meta-word font-size-12 margin-top-5">{{30-user.website.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>Location </h4>
|
||
|
<el-input size="medium" placeholder="Your location" v-model="user.location" :maxlength="30"></el-input>
|
||
|
<div class="meta-word font-size-12 margin-top-5">{{30-user.location.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-30">
|
||
|
<h4>Background color</h4>
|
||
|
<el-color-picker class="position-absolute" size="small" v-model="user.bg_color"></el-color-picker>
|
||
|
<span class="meta-word font-size-12 margin-left-40">The background color used in your home page</span>
|
||
|
</div>
|
||
|
<div class="margin-top-30 margin-bottom-50">
|
||
|
<h4>Text color </h4>
|
||
|
<el-color-picker class="position-absolute" size="small" v-model="user.text_color"></el-color-picker>
|
||
|
<span class="meta-word font-size-12 margin-left-40">The text color used in your home page</span>
|
||
|
</div>
|
||
|
|
||
|
<el-divider content-position="left" >Job/Working</el-divider>
|
||
|
<div class="margin-top-40">
|
||
|
<h4>Education</h4>
|
||
|
<div class="meta-word font-size-12">A brief description of your education.</div>
|
||
|
<el-input type="textarea" class="margin-top-5 margin-bottom-5" v-model="user.education" :maxlength="500"></el-input>
|
||
|
<div class="meta-word font-size-12">{{500-user.education.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>Employer</h4>
|
||
|
<div class="meta-word font-size-12">e.g : Development Team Leader at <a href="https://google.com">Google</a></div>
|
||
|
<el-input type="textarea" class="margin-top-5 margin-bottom-5" v-model="user.employer" :maxlength="500"></el-input>
|
||
|
<div class="meta-word font-size-12">{{500-user.employer.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>Skills </h4>
|
||
|
<div class="meta-word font-size-12">What programming skills do you have? Are your a expert?</div>
|
||
|
<el-input type="textarea" class="margin-top-5 margin-bottom-5" v-model="user.skills" :maxlength="500"></el-input>
|
||
|
<div class="meta-word font-size-12">{{500-user.skills.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>Working Experience</h4>
|
||
|
<div class="meta-word font-size-12">Your working experience and the projects you participated</div>
|
||
|
<el-input type="textarea" class="margin-top-5 margin-bottom-5" v-model="user.working_exp" :maxlength="500"></el-input>
|
||
|
<div class="meta-word font-size-12">{{500-user.working_exp.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>Available for</h4>
|
||
|
<div class="meta-word font-size-12">What kinds of collaborations or works are you available for?</div>
|
||
|
<el-input type="textarea" class="margin-top-5 margin-bottom-5" v-model="user.available_for" :maxlength="500"></el-input>
|
||
|
<div class="meta-word font-size-12">{{500-user.available_for.length}} Characters</div>
|
||
|
</div>
|
||
|
<div class="margin-top-20">
|
||
|
<h4>Looking for work</h4>
|
||
|
|
||
|
<el-switch
|
||
|
class="position-absolute"
|
||
|
v-model="user.lfw"
|
||
|
active-color="#13ce66">
|
||
|
</el-switch>
|
||
|
<span class="meta-word font-size-12 margin-left-50">Are you looking for a work now?</span>
|
||
|
</div>
|
||
|
|
||
|
<div class="margin-top-20">
|
||
|
<el-button type="primary" @click="setProfile">SUBMIT</el-button>
|
||
|
</div>
|
||
|
</el-col>
|
||
|
<el-col :span="6" :offset="1">
|
||
|
<UserCard :user="user"></UserCard>
|
||
|
</el-col>
|
||
|
</el-row>
|
||
|
</div>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import request from "@/utils/request";
|
||
|
import UserCard from "../components/user-card";
|
||
|
export default {
|
||
|
components: {UserCard},
|
||
|
data() {
|
||
|
return {
|
||
|
user: {}
|
||
|
};
|
||
|
},
|
||
|
watch: {
|
||
|
"$store.state.user.id"() {
|
||
|
if (this.$store.state.user.id != '') {
|
||
|
this.init()
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
methods: {
|
||
|
setProfile() {
|
||
|
request({
|
||
|
url: "/user/profile/set",
|
||
|
method: "POST",
|
||
|
params: {
|
||
|
user: JSON.stringify(this.user)
|
||
|
}
|
||
|
}).then(res => {
|
||
|
this.$message.success("Saved")
|
||
|
});
|
||
|
},
|
||
|
init() {
|
||
|
request({
|
||
|
url: "/user/profile",
|
||
|
method: "GET",
|
||
|
params: {
|
||
|
}
|
||
|
}).then(res => {
|
||
|
this.user = res.data.data
|
||
|
if (this.user.lfw ==0) {
|
||
|
this.user.lfw = false
|
||
|
} else {
|
||
|
this.user.lfw = true
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
mounted() {
|
||
|
this.init()
|
||
|
}
|
||
|
};
|
||
|
</script>
|
||
|
|