|
|
@@ -220,11 +220,16 @@
|
|
|
</div>
|
|
|
<div class="summary-item">
|
|
|
<span class="summary-label"><Icon icon="ep:office-building" />目前所在单位</span>
|
|
|
- <strong>{{ activeExpert.company || '-' }}</strong>
|
|
|
+ <strong>{{ activeExpert.deptName || '-' }}</strong>
|
|
|
</div>
|
|
|
<div class="summary-item">
|
|
|
<span class="summary-label"><Icon icon="ep:phone" />联系方式</span>
|
|
|
- <strong>{{ activeExpert.contact || '-' }}</strong>
|
|
|
+ <strong>{{ activeExpert.phone || '-' }}</strong>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="summary-item">
|
|
|
+ <span class="summary-label"><Icon icon="ep:eleme" />邮箱</span>
|
|
|
+ <strong>{{ activeExpert.email || '-' }}</strong>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -273,14 +278,12 @@
|
|
|
<el-button
|
|
|
size="large"
|
|
|
type="primary"
|
|
|
- plain
|
|
|
@click="handleEdit"
|
|
|
v-hasPermi="['rd:expert-pool:update']"
|
|
|
>维护档案</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
size="large"
|
|
|
- plain
|
|
|
type="danger"
|
|
|
@click="handleDeleteExpert"
|
|
|
v-hasPermi="['rd:expert-pool:delete']"
|
|
|
@@ -500,6 +503,22 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="联系电话" prop="phone">
|
|
|
+ <el-input v-model="formData.phone" placeholder="请输入联系电话" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="邮箱" prop="email">
|
|
|
+ <el-input v-model="formData.email" placeholder="请输入邮箱" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="工作经历" prop="formerPost">
|
|
|
@@ -638,7 +657,9 @@ const defaultFormData = () => ({
|
|
|
formerPost: '',
|
|
|
jobTitle: '',
|
|
|
professionalTitle: '',
|
|
|
- expertRank: []
|
|
|
+ expertRank: [],
|
|
|
+ phone: '',
|
|
|
+ email: ''
|
|
|
})
|
|
|
|
|
|
const deptList2 = ref<Tree[]>([]) // 树形结构
|
|
|
@@ -716,7 +737,9 @@ const buildFormDataFromExpertDetail = (detail: any) => {
|
|
|
formerPost: detail?.formerPost || '',
|
|
|
jobTitle: detail?.jobTitle || '',
|
|
|
professionalTitle: detail?.professionalTitle || '',
|
|
|
- expertRank: detail?.expertRank || []
|
|
|
+ expertRank: detail?.expertRank || [],
|
|
|
+ phone: detail?.phone || '',
|
|
|
+ email: detail?.email || ''
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -774,6 +797,9 @@ type ExpertProfile = {
|
|
|
tags: string[]
|
|
|
achievement: string
|
|
|
records: ExpertRecord[]
|
|
|
+ phone: string
|
|
|
+ email: string
|
|
|
+ deptName: string
|
|
|
}
|
|
|
|
|
|
type ExpertItem = {
|
|
|
@@ -800,6 +826,8 @@ type ExpertItem = {
|
|
|
softwareSkills: number[]
|
|
|
teams?: Array<{ id: number; teamName?: string }>
|
|
|
sort?: number // 同梯队同序列内的排序值
|
|
|
+ email: string
|
|
|
+ deptName: string
|
|
|
}
|
|
|
|
|
|
type ExpertGroup = {
|
|
|
@@ -958,7 +986,10 @@ const buildExpertProfile = (expert: ExpertItem, groupLabel?: string): ExpertProf
|
|
|
honors: expert.remark || '',
|
|
|
tags: [expert.professionalTitle].filter(Boolean),
|
|
|
achievement: expert.achievement || '暂无',
|
|
|
- records: []
|
|
|
+ records: [],
|
|
|
+ phone: expert.phone || '',
|
|
|
+ email: expert.email || '',
|
|
|
+ deptName: expert.deptName || ''
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1418,7 +1449,7 @@ onMounted(async () => {
|
|
|
margin: 0 0 18px;
|
|
|
padding: 18px 22px 20px;
|
|
|
|
|
|
- border-radius: 10px;
|
|
|
+ border-radius: 5px;
|
|
|
background: #fff;
|
|
|
box-shadow: 0 2px 4px rgba(34, 57, 86, 0.06);
|
|
|
}
|
|
|
@@ -1531,7 +1562,7 @@ onMounted(async () => {
|
|
|
min-width: 0;
|
|
|
padding: 28px 29px 26px;
|
|
|
|
|
|
- border-radius: 10px;
|
|
|
+ border-radius: 5px;
|
|
|
box-sizing: border-box;
|
|
|
background: #fff;
|
|
|
box-shadow: 0 2px 4px rgba(34, 57, 86, 0.06);
|
|
|
@@ -2186,7 +2217,7 @@ onMounted(async () => {
|
|
|
margin: 0;
|
|
|
color: #102234;
|
|
|
font-size: 18px;
|
|
|
- font-weight: 800;
|
|
|
+ font-weight: normal;
|
|
|
}
|
|
|
|
|
|
.drawer-header p {
|
|
|
@@ -2203,9 +2234,9 @@ onMounted(async () => {
|
|
|
margin: 18px;
|
|
|
padding: 16px;
|
|
|
border: 1px solid rgba(28, 44, 62, 0.08);
|
|
|
- border-radius: 8px;
|
|
|
+ border-radius: 5px;
|
|
|
background: #fff;
|
|
|
- box-shadow: 0 8px 30px rgba(28, 44, 62, 0.06);
|
|
|
+ // box-shadow: 0 8px 30px rgba(28, 44, 62, 0.06);
|
|
|
}
|
|
|
|
|
|
.profile-aside {
|
|
|
@@ -2220,7 +2251,7 @@ onMounted(async () => {
|
|
|
justify-content: center;
|
|
|
min-height: 150px;
|
|
|
max-height: 150px;
|
|
|
- border-radius: 14px;
|
|
|
+ border-radius: 5px;
|
|
|
background: linear-gradient(145deg, #b7d3cd, #e8f0ee);
|
|
|
color: #0f5b58;
|
|
|
font-size: 46px;
|
|
|
@@ -2247,8 +2278,8 @@ onMounted(async () => {
|
|
|
flex-direction: column;
|
|
|
gap: 3px;
|
|
|
padding: 9px 10px;
|
|
|
- border: 1px solid #dbe3df;
|
|
|
- border-radius: 8px;
|
|
|
+ border-bottom: 1px dashed rgba(28, 44, 62, 0.08);
|
|
|
+ border-radius: 5px;
|
|
|
background: #fdfefe;
|
|
|
overflow-wrap: anywhere;
|
|
|
}
|
|
|
@@ -2305,8 +2336,9 @@ onMounted(async () => {
|
|
|
|
|
|
.info-block {
|
|
|
padding: 12px 14px;
|
|
|
- border: 1px solid #dbe3df;
|
|
|
- border-radius: 12px;
|
|
|
+ border: none;
|
|
|
+ border-bottom: 1px dashed rgba(28, 44, 62, 0.08);
|
|
|
+
|
|
|
background: #fdfefe;
|
|
|
}
|
|
|
|
|
|
@@ -2319,9 +2351,9 @@ onMounted(async () => {
|
|
|
}
|
|
|
|
|
|
.info-block strong {
|
|
|
- color: #203130;
|
|
|
- font-size: 13px;
|
|
|
- font-weight: 800;
|
|
|
+ // color: #203130;
|
|
|
+ // font-size: 13px;
|
|
|
+ font-weight: normal;
|
|
|
line-height: 1.55;
|
|
|
}
|
|
|
|
|
|
@@ -2345,8 +2377,8 @@ onMounted(async () => {
|
|
|
|
|
|
.record-panel {
|
|
|
margin: 0 20px 26px;
|
|
|
- border: 1px solid rgba(28, 44, 62, 0.08);
|
|
|
- border-radius: 8px;
|
|
|
+
|
|
|
+ border-radius: 5px;
|
|
|
overflow: hidden;
|
|
|
background: #fff;
|
|
|
// box-shadow: 0 8px 30px rgba(28, 44, 62, 0.05);
|
|
|
@@ -2361,7 +2393,7 @@ onMounted(async () => {
|
|
|
margin: 0;
|
|
|
color: #1e2d3a;
|
|
|
font-size: 18px;
|
|
|
- font-weight: 800;
|
|
|
+ font-weight: normal;
|
|
|
}
|
|
|
|
|
|
.record-header p {
|