BasicInfo.vue
4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<template>
<div class="basic-info">
<div class="info-container">
<el-descriptions :column="3" border class="info-content">
<el-descriptions-item label="用户名">{{ person.userName }}</el-descriptions-item>
<el-descriptions-item label="用户姓名">{{ person.nickName }}</el-descriptions-item>
<el-descriptions-item label="身份证号">{{ person.cardId }}</el-descriptions-item>
<el-descriptions-item label="性别">
<dict-tag :options="dict.type.sys_user_sex" :value="person.sex"/>
</el-descriptions-item>
<el-descriptions-item label="手机号码">{{ person.phonenumber }}</el-descriptions-item>
<el-descriptions-item label="座机号码">{{ person.telphonenumber }}</el-descriptions-item>
<el-descriptions-item label="邮箱">{{ person.email }}</el-descriptions-item>
<el-descriptions-item label="党员">{{ person.partyMember === '1' ? '是' : '否' }}</el-descriptions-item>
<el-descriptions-item label="运维平台">{{ person.operationPlat }}</el-descriptions-item>
<el-descriptions-item label="平台账号">{{ person.operationPlatAccount }}</el-descriptions-item>
<el-descriptions-item label="驻场开始日期">{{ parseTime(person.siteBeginDate,'{y}-{m}-{d}') }}</el-descriptions-item>
<el-descriptions-item label="驻场截止日期">{{ parseTime(person.siteEndDate,'{y}-{m}-{d}') }}</el-descriptions-item>
<el-descriptions-item label="最高学历">
<div @click="preview(person.highestQualificationAttachment)">
<dict-tag :options="dict.type.per_qualification" :value="parseInt(person.highestQualification)"/>
</div>
</el-descriptions-item>
<el-descriptions-item label="学历院校">{{ person.qualificationUniversity }}</el-descriptions-item>
<el-descriptions-item label="最高学位">
<div @click="preview(person.highestDegreeAttachment)">
<dict-tag :options="dict.type.per_degree" :value="person.highestDegree"/>
</div>
</el-descriptions-item>
<el-descriptions-item label="学位院校">{{ person.degreeUniversity }}</el-descriptions-item>
<el-descriptions-item label="考勤机编号">{{ person.checkOnNumber }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ person.remark }}</el-descriptions-item>
</el-descriptions>
</div>
<div class="avatar-container">
<el-avatar
:key="avatarUrl"
:size="120"
:src="avatarUrl"
icon="el-icon-user-solid"
></el-avatar>
</div>
<el-dialog :visible.sync="previewOpen" title="预览" append-to-body>
<attachment-preview :fileId="fileId" :fileType="fileType" />
</el-dialog>
</div>
</template>
<script>
import { getBaseInfo } from "@/api/resource/person";
export default {
name: "BasicInfo",
dicts: ['sys_user_sex','per_degree','per_qualification'],
props: {
personId:{
type: String,
required: true
}
},
data() {
return {
person: {},
previewOpen: false,
fileId: '',
fileType: '',
avatarUrl: ''
};
},
mounted() {
this.loadBaseData();
},
destroyed() {
this.avatarUrl = '';
},
methods: {
preview(attach) {
if(attach) {
var [id,fileType] = attach.split(":");
this.previewOpen = true;
this.fileId = id;
this.fileType = fileType;
}
},
loadBaseData(){
getBaseInfo(this.personId).then(response => {
this.person = response.data;
this.getAvatarUrl();
});
},
getAvatarUrl() {
if(this.person){
this.avatarUrl = process.env.VUE_APP_BASE_API+'/view/attachement/preview?id='+this.person.avatar;
}
}
}
};
</script>
<style scoped>
.info-container {
display: flex;
position: relative;
}
.info-content {
flex: 1;
}
.avatar-container {
position: absolute;
top: 5px;
right: 5px;
text-align: center;
}
.el-avatar {
border: 1px solid #eee;
/*box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); */
}
</style>