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.
276 lines
9.6 KiB
276 lines
9.6 KiB
<template>
|
|
<div id="information">
|
|
<el-breadcrumb separator="/">
|
|
<el-breadcrumb-item>首页</el-breadcrumb-item>
|
|
<el-breadcrumb-item>个人中心 </el-breadcrumb-item>
|
|
<el-breadcrumb-item>个人资料</el-breadcrumb-item> </el-breadcrumb
|
|
><br />
|
|
|
|
<i class="iconfont icon-r-paper" style="font-size: 32px">
|
|
<b style="font-size: 28px">完善个人资料</b></i
|
|
>
|
|
<br />
|
|
<br />
|
|
<el-form
|
|
:model="informationForm"
|
|
:rules="rules"
|
|
ref="informationForm"
|
|
label-width="100px"
|
|
class="demo-ruleForm"
|
|
>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item style="width: 40%">
|
|
<el-upload
|
|
class="avatar-uploader"
|
|
action="http://localhost:9291/personnel_management/employee/uploadImg"
|
|
:show-file-list="false"
|
|
:on-success="handleAvatarSuccess"
|
|
:before-upload="beforeAvatarUpload"
|
|
>
|
|
<img
|
|
v-if="imageUrl"
|
|
:src="BaseApi + imageUrl"
|
|
class="avatar"
|
|
/>
|
|
<i
|
|
v-else
|
|
class="el-icon-plus avatar-uploader-icon"
|
|
></i>
|
|
</el-upload>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item
|
|
style="width: 40%"
|
|
label="电话号码:"
|
|
prop="username"
|
|
>
|
|
<el-input
|
|
max="11"
|
|
v-model="informationForm.username"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item
|
|
style="width: 40%"
|
|
label="姓名:"
|
|
prop="nickName"
|
|
>
|
|
<el-input
|
|
v-model="informationForm.nickName"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item
|
|
style="width: 40%"
|
|
label="身份证号:"
|
|
prop="idCard"
|
|
>
|
|
<el-input
|
|
v-model="informationForm.idCard"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item style="width: 40%" label="年龄:">
|
|
<el-input
|
|
type="number"
|
|
min="18"
|
|
max="70"
|
|
v-model="informationForm.age"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item
|
|
style="width: 40%"
|
|
label="所属部门:"
|
|
>
|
|
<el-select
|
|
disabled
|
|
style="width: 200px"
|
|
v-model="informationForm.deptId"
|
|
placeholder="请选择部门"
|
|
filterable
|
|
@change="$forceUpdate()"
|
|
clearable
|
|
>
|
|
<el-option
|
|
v-for="item in options"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.id"
|
|
>
|
|
</el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item style="width: 40%" label="住址:">
|
|
<el-input
|
|
type="text"
|
|
v-model="informationForm.address"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-row>
|
|
<el-col :span="12">
|
|
<el-form-item style="width: 40%" label="备注:">
|
|
<el-input
|
|
type="textarea"
|
|
cols="50"
|
|
rows="3"
|
|
v-model="informationForm.info"
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-form-item style="width: 40%" label="性别:">
|
|
<el-select
|
|
style="width: 200px"
|
|
v-model="informationForm.sex"
|
|
@change="$forceUpdate()"
|
|
placeholder="请选择性别"
|
|
clearable
|
|
>
|
|
<el-option label="女" value="0"></el-option>
|
|
<el-option label="男" value="1"></el-option>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-row>
|
|
<el-form-item>
|
|
<el-button
|
|
type="primary"
|
|
@click="submitInformationForm('informationForm')"
|
|
|
|
>
|
|
提交</el-button
|
|
>
|
|
<el-button
|
|
@click="resetForm('informationForm')"
|
|
|
|
>
|
|
重置</el-button
|
|
>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import { listByQo } from "@/api/personnel_management/department/deptApi";
|
|
import { popup } from "@/assets/js/common";
|
|
import { queryInformation } from "@/api/personal/personApi";
|
|
import { update } from "@/api/personnel_management/employee/empApi";
|
|
import { loginEmp } from "@/assets/js/auth";
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
BaseApi: this.$store.state.BaseApi,
|
|
loginEid: loginEmp().id,
|
|
informationForm: {},
|
|
imageUrl: "",
|
|
options: [],
|
|
rules: {
|
|
username: [
|
|
{
|
|
required: true,
|
|
message: "手机号不能为空",
|
|
trigger: "blur",
|
|
},
|
|
],
|
|
nickName: [
|
|
{
|
|
required: true,
|
|
message: "姓名不能为空",
|
|
trigger: "blur",
|
|
},
|
|
],
|
|
idCard: [
|
|
{
|
|
required: true,
|
|
message: "身份证号不能为空",
|
|
trigger: "blur",
|
|
},
|
|
],
|
|
},
|
|
};
|
|
},
|
|
methods: {
|
|
deptAll() {
|
|
listByQo({}).then((res) => {
|
|
res = res.data;
|
|
if (res.code == 200) {
|
|
this.options = res.data;
|
|
} else {
|
|
popup(res.msg, "error");
|
|
}
|
|
});
|
|
},
|
|
init() {
|
|
queryInformation().then((res) => {
|
|
res = res.data;
|
|
if (res.code == 200) {
|
|
this.informationForm = { ...res.data };
|
|
this.imageUrl = this.informationForm.headImg;
|
|
} else {
|
|
popup(res.msg, "error");
|
|
}
|
|
});
|
|
},
|
|
submitInformationForm(formName) {
|
|
this.$refs[formName].validate((valid) => {
|
|
if (valid) {
|
|
update(this.informationForm).then((res) => {
|
|
res = res.data;
|
|
if (res.code == 200) {
|
|
popup("更新成功");
|
|
} else {
|
|
popup(res.msg, "error");
|
|
}
|
|
this.init();
|
|
});
|
|
}
|
|
});
|
|
},
|
|
resetForm(formName) {
|
|
this.$refs[formName].resetFields();
|
|
this.init();
|
|
},
|
|
/*上传头像*/
|
|
handleAvatarSuccess(res) {
|
|
this.informationForm.headImg = res.url;
|
|
this.imageUrl = res.url;
|
|
},
|
|
beforeAvatarUpload(file) {
|
|
const isJPG =
|
|
file.type === "image/jpeg" || file.type === "image/png";
|
|
const isLt2M = file.size / 1024 / 1024 < 3;
|
|
if (!isJPG) {
|
|
this.$message.error("上传头像图片只能是 JPG或PNG 格式!");
|
|
}
|
|
if (!isLt2M) {
|
|
this.$message.error("上传头像图片大小不能超过 3MB!");
|
|
}
|
|
return isJPG && isLt2M;
|
|
},
|
|
},
|
|
mounted() {
|
|
this.imageUrl = "";
|
|
this.deptAll();
|
|
this.init();
|
|
},
|
|
};
|
|
</script>
|