|
@@ -152,11 +152,6 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="profile-main">
|
|
<div class="profile-main">
|
|
|
- <div class="info-block">
|
|
|
|
|
- <span class="info-label">团队所属公司</span>
|
|
|
|
|
- <strong>{{ activeExpert.company }}</strong>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
<div class="info-block">
|
|
<div class="info-block">
|
|
|
<span class="info-label">专家序列 / 梯队 / 学历</span>
|
|
<span class="info-label">专家序列 / 梯队 / 学历</span>
|
|
|
<strong
|
|
<strong
|
|
@@ -165,16 +160,6 @@
|
|
|
>
|
|
>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div class="info-block">
|
|
|
|
|
- <span class="info-label">所属团队</span>
|
|
|
|
|
- <strong>{{
|
|
|
|
|
- currentExpertDetail?.teams
|
|
|
|
|
- ?.map((team) => team.teamName)
|
|
|
|
|
- .filter(Boolean)
|
|
|
|
|
- .join('、') || '-'
|
|
|
|
|
- }}</strong>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
<div class="info-block">
|
|
<div class="info-block">
|
|
|
<span class="info-label">专业方向</span>
|
|
<span class="info-label">专业方向</span>
|
|
|
<strong>{{ activeExpert.direction.join('、') || '-' }}</strong>
|
|
<strong>{{ activeExpert.direction.join('、') || '-' }}</strong>
|
|
@@ -211,8 +196,10 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="profile-actions">
|
|
<div class="profile-actions">
|
|
|
- <el-button type="success" size="large" @click="handleJoinTeam">加入团队</el-button>
|
|
|
|
|
- <el-button size="large" plain @click="handleEdit">维护档案</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" size="large" @click="handleJoinTeam">加入团队</el-button>
|
|
|
|
|
+ <el-button size="large" type="primary" plain @click="handleEdit"
|
|
|
|
|
+ >维护档案</el-button
|
|
|
|
|
+ >
|
|
|
<el-button size="large" plain>下载履历</el-button>
|
|
<el-button size="large" plain>下载履历</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -455,7 +442,9 @@
|
|
|
|
|
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
<el-button @click="closeDialog">取 消</el-button>
|
|
<el-button @click="closeDialog">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitExpertForm" :loading="submitLoading">确 定</el-button>
|
|
|
|
|
|
|
+ <el-button type="primary" @click="submitExpertForm" :loading="submitLoading"
|
|
|
|
|
+ >确 定</el-button
|
|
|
|
|
+ >
|
|
|
</template>
|
|
</template>
|
|
|
</Dialog>
|
|
</Dialog>
|
|
|
|
|
|
|
@@ -862,7 +851,7 @@ const buildExpertProfile = (expert: ExpertItem, groupLabel?: string): ExpertProf
|
|
|
formerPost: expert.formerPost || '',
|
|
formerPost: expert.formerPost || '',
|
|
|
jobTitle: expert.jobTitle || '',
|
|
jobTitle: expert.jobTitle || '',
|
|
|
professionalTitle: expert.professionalTitle || '',
|
|
professionalTitle: expert.professionalTitle || '',
|
|
|
- tags: [groupLabel, ...teamNames, expert.professionalTitle].filter(Boolean),
|
|
|
|
|
|
|
+ tags: [expert.professionalTitle].filter(Boolean),
|
|
|
achievement: expert.achievement || '暂无',
|
|
achievement: expert.achievement || '暂无',
|
|
|
records: []
|
|
records: []
|
|
|
}
|
|
}
|
|
@@ -981,9 +970,7 @@ const syncTeamSelection = async () => {
|
|
|
syncingTeamSelection.value = true
|
|
syncingTeamSelection.value = true
|
|
|
try {
|
|
try {
|
|
|
teamTableRef.value?.clearSelection()
|
|
teamTableRef.value?.clearSelection()
|
|
|
- const selectedTeamIds = new Set(
|
|
|
|
|
- Object.keys(tempSelectedTeamMap.value).map((id) => Number(id))
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ const selectedTeamIds = new Set(Object.keys(tempSelectedTeamMap.value).map((id) => Number(id)))
|
|
|
teamList.value.forEach((row) => {
|
|
teamList.value.forEach((row) => {
|
|
|
if (selectedTeamIds.has(row.id)) {
|
|
if (selectedTeamIds.has(row.id)) {
|
|
|
teamTableRef.value?.toggleRowSelection(row, true)
|
|
teamTableRef.value?.toggleRowSelection(row, true)
|
|
@@ -1021,9 +1008,7 @@ const openTeamDialog = async () => {
|
|
|
teamDialogMode.value = 'form'
|
|
teamDialogMode.value = 'form'
|
|
|
teamDialogVisible.value = true
|
|
teamDialogVisible.value = true
|
|
|
tempSelectedTeams.value = [...selectedTeams.value]
|
|
tempSelectedTeams.value = [...selectedTeams.value]
|
|
|
- tempSelectedTeamMap.value = Object.fromEntries(
|
|
|
|
|
- selectedTeams.value.map((team) => [team.id, team])
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ tempSelectedTeamMap.value = Object.fromEntries(selectedTeams.value.map((team) => [team.id, team]))
|
|
|
await getTeamOptionsList()
|
|
await getTeamOptionsList()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1050,9 +1035,7 @@ const ensureSelectedTeams = async (teamIds: number[]) => {
|
|
|
|
|
|
|
|
selectedTeams.value = teamIds.map((id) => teamMap.get(id)).filter(Boolean)
|
|
selectedTeams.value = teamIds.map((id) => teamMap.get(id)).filter(Boolean)
|
|
|
tempSelectedTeams.value = [...selectedTeams.value]
|
|
tempSelectedTeams.value = [...selectedTeams.value]
|
|
|
- tempSelectedTeamMap.value = Object.fromEntries(
|
|
|
|
|
- selectedTeams.value.map((team) => [team.id, team])
|
|
|
|
|
- )
|
|
|
|
|
|
|
+ tempSelectedTeamMap.value = Object.fromEntries(selectedTeams.value.map((team) => [team.id, team]))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const handleJoinTeam = async () => {
|
|
const handleJoinTeam = async () => {
|