|
@@ -25,6 +25,7 @@ const { query } = useRoute()
|
|
|
const { id, type } = query
|
|
|
const formRef = ref<FormInstance>()
|
|
|
const formData = ref({})
|
|
|
+const tabNav = ref<string>('#gsxx')
|
|
|
let avatar = avatarImg
|
|
|
|
|
|
/**获取员工档案详情 */
|
|
@@ -114,7 +115,14 @@ const imagePreview = (imgUrl: string) => {
|
|
|
urlList: [imgUrl]
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
+//模拟锚点跳转
|
|
|
+const goAnchor = (selector) => {
|
|
|
+ tabNav.value = selector
|
|
|
+ //参数selector是id选择器(#anchor14)
|
|
|
+ document.querySelector(selector).scrollIntoView({
|
|
|
+ behavior: 'smooth'
|
|
|
+ })
|
|
|
+}
|
|
|
/**是否是编辑页面 */
|
|
|
const isEdit = computed(() => {
|
|
|
return type === 'edit'
|
|
@@ -143,25 +151,12 @@ const savePerformanceList = (data: any[]) => {
|
|
|
</script>
|
|
|
<template>
|
|
|
<div class="staff-files-wrap">
|
|
|
- <div class="staff-name">
|
|
|
- <el-image
|
|
|
- class="staff-avator"
|
|
|
- :src="avatar"
|
|
|
- :zoom-rate="1.2"
|
|
|
- :max-scale="7"
|
|
|
- :min-scale="0.2"
|
|
|
- @click="imagePreview(avatar)"
|
|
|
- :initial-index="0"
|
|
|
- />
|
|
|
- <span>{{ formData?.['nickname'] }}员工档案</span>
|
|
|
- </div>
|
|
|
-
|
|
|
<div
|
|
|
v-if="formData && Object.keys(formData)?.length > 0"
|
|
|
:class="isEdit ? 'my-portrait' : 'my-portrait form-unable-edit'"
|
|
|
>
|
|
|
<el-form ref="formRef" :model="formData" label-width="150px" :disabled="!isEdit">
|
|
|
- <div class="my-portrait-item-first">
|
|
|
+ <div class="my-portrait-header">
|
|
|
<div class="user-card">
|
|
|
<el-image
|
|
|
class="staff-avator"
|
|
@@ -174,134 +169,20 @@ const savePerformanceList = (data: any[]) => {
|
|
|
/>
|
|
|
</div>
|
|
|
<div class="my-portrait-card">
|
|
|
+ <div class="btn_box">
|
|
|
+ <el-form-item v-if="isEdit">
|
|
|
+ <el-button color="#1B80EB" type="primary" @click="submitForm(formRef)"
|
|
|
+ >保存</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
<div class="user-base-info">
|
|
|
<h4>{{ formData?.['nickname'] }}</h4>
|
|
|
<span>{{ formData?.['deptName'] }}</span>
|
|
|
</div>
|
|
|
<ul>
|
|
|
<li v-for="(child, c) in formConfigList[0].children" :key="c">
|
|
|
- <el-form-item :label="`${child.title}:`" :prop="child.name" label-width="auto">
|
|
|
- <el-date-picker
|
|
|
- v-if="child.type === 'time'"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- style="width: 100%"
|
|
|
- :placeholder="isEdit ? child.title : ''"
|
|
|
- type="date"
|
|
|
- format="YYYY-MM-DD"
|
|
|
- value-format="x"
|
|
|
- />
|
|
|
-
|
|
|
- <DeptSelect
|
|
|
- v-if="child.type === 'dept-select'"
|
|
|
- v-model="formData['deptId']"
|
|
|
- :defaultValue="formData['deptId'] ?? ''"
|
|
|
- />
|
|
|
-
|
|
|
- <el-select
|
|
|
- v-if="child.type === 'select'"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- style="width: 100%"
|
|
|
- :placeholder="isEdit ? child.title : '-'"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="opt in child.options"
|
|
|
- :key="opt.value"
|
|
|
- :label="opt.label"
|
|
|
- :value="opt.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <el-input
|
|
|
- v-if="child?.type === undefined"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- placeholder=""
|
|
|
- />
|
|
|
- <div v-if="child?.type === 'button'" class="generate-num">
|
|
|
- <el-input v-model="formData[child?.name]" placeholder="" :disabled="true" />
|
|
|
- <ElButton
|
|
|
- v-if="isEdit"
|
|
|
- type="primary"
|
|
|
- style="width: 70px; height: 30px; margin-left: 10px"
|
|
|
- @click="generateStaffNumber()"
|
|
|
- >生成工号</ElButton
|
|
|
- >
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- </li>
|
|
|
- <li></li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="my-portrait-item">
|
|
|
- <div class="title">
|
|
|
- <i></i>
|
|
|
- <span>公司信息</span>
|
|
|
- </div>
|
|
|
- <div class="my-portrait-card">
|
|
|
- <ul>
|
|
|
- <li v-for="(child, c) in formConfigList[1].children" :key="c">
|
|
|
- <el-form-item :label="`${child.title}:`" :prop="child.name">
|
|
|
- <el-date-picker
|
|
|
- v-if="child.type === 'time'"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- style="width: 100%"
|
|
|
- :placeholder="isEdit ? child.title : ''"
|
|
|
- type="date"
|
|
|
- format="YYYY-MM-DD"
|
|
|
- value-format="x"
|
|
|
- />
|
|
|
-
|
|
|
- <DeptSelect
|
|
|
- v-if="child.type === 'dept-select'"
|
|
|
- v-model="formData['deptId']"
|
|
|
- :defaultValue="formData['deptId'] ?? ''"
|
|
|
- />
|
|
|
-
|
|
|
- <el-select
|
|
|
- v-if="child.type === 'select'"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- style="width: 100%"
|
|
|
- :placeholder="isEdit ? child.title : '-'"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="opt in child.options"
|
|
|
- :key="opt.value"
|
|
|
- :label="opt.label"
|
|
|
- :value="opt.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <el-input
|
|
|
- v-if="child?.type === undefined"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- placeholder=""
|
|
|
- />
|
|
|
- <div v-if="child?.type === 'button'" class="generate-num">
|
|
|
- <el-input v-model="formData[child?.name]" placeholder="" :disabled="true" />
|
|
|
- <ElButton
|
|
|
- v-if="isEdit"
|
|
|
- type="primary"
|
|
|
- style="width: 70px; height: 30px; margin-left: 10px"
|
|
|
- @click="generateStaffNumber()"
|
|
|
- >生成工号</ElButton
|
|
|
- >
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- </li>
|
|
|
- <li></li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="my-portrait-item">
|
|
|
- <div class="title">
|
|
|
- <i></i>
|
|
|
- <span>工资卡信息</span>
|
|
|
- </div>
|
|
|
- <div class="my-portrait-card">
|
|
|
- <ul>
|
|
|
- <li v-for="(child, c) in formConfigList[2].children" :key="c">
|
|
|
- <el-form-item :label="`${child.title}:`" :prop="child.name">
|
|
|
+ <el-form-item :label="`${child.title}:`" :prop="child.name" label-width="110px">
|
|
|
<el-date-picker
|
|
|
v-if="child.type === 'time'"
|
|
|
v-model="formData[child?.name]"
|
|
@@ -353,90 +234,220 @@ const savePerformanceList = (data: any[]) => {
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="my-portrait-item">
|
|
|
- <div class="title">
|
|
|
- <i></i>
|
|
|
- <span>紧急联系人信息</span>
|
|
|
- </div>
|
|
|
- <div class="my-portrait-card">
|
|
|
- <ul>
|
|
|
- <li v-for="(child, c) in formConfigList[3].children" :key="c">
|
|
|
- <el-form-item :label="`${child.title}:`" :prop="child.name">
|
|
|
- <el-date-picker
|
|
|
- v-if="child.type === 'time'"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- style="width: 100%"
|
|
|
- :placeholder="isEdit ? child.title : ''"
|
|
|
- type="date"
|
|
|
- format="YYYY-MM-DD"
|
|
|
- value-format="x"
|
|
|
- />
|
|
|
-
|
|
|
- <DeptSelect
|
|
|
- v-if="child.type === 'dept-select'"
|
|
|
- v-model="formData['deptId']"
|
|
|
- :defaultValue="formData['deptId'] ?? ''"
|
|
|
- />
|
|
|
-
|
|
|
- <el-select
|
|
|
- v-if="child.type === 'select'"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- style="width: 100%"
|
|
|
- :placeholder="isEdit ? child.title : '-'"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="opt in child.options"
|
|
|
- :key="opt.value"
|
|
|
- :label="opt.label"
|
|
|
- :value="opt.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
+ <div class="my-portrait-wrap">
|
|
|
+ <ul class="my-portrait-nav">
|
|
|
+ <li @click="goAnchor('#gsxx')" :class="{ active: tabNav === '#gsxx' }">公司信息</li>
|
|
|
+ <li @click="goAnchor('#gzkxx')" :class="{ active: tabNav === '#gzkxx' }">工资卡信息</li>
|
|
|
+ <li @click="goAnchor('#jjlxrxx')" :class="{ active: tabNav === '#jjlxrxx' }"
|
|
|
+ >紧急联系人信息</li
|
|
|
+ >
|
|
|
+ <li @click="goAnchor('#gzjl')" :class="{ active: tabNav === '#gzjl' }">工作经历</li>
|
|
|
+ <li @click="goAnchor('#jtcy')" :class="{ active: tabNav === '#jtcy' }">家庭成员</li>
|
|
|
+ <li @click="goAnchor('#xxjl')" :class="{ active: tabNav === '#xxjl' }">学习经历</li>
|
|
|
+ <li @click="goAnchor('#jxkh')" :class="{ active: tabNav === '#jxkh' }">绩效考核</li>
|
|
|
+ </ul>
|
|
|
+ <div class="my-portrait-container">
|
|
|
+ <div class="my-portrait-item" id="gsxx">
|
|
|
+ <div class="title">
|
|
|
+ <i></i>
|
|
|
+ <span>公司信息</span>
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-card">
|
|
|
+ <ul>
|
|
|
+ <li v-for="(child, c) in formConfigList[1].children" :key="c">
|
|
|
+ <el-form-item :label="`${child.title}:`" :prop="child.name">
|
|
|
+ <el-date-picker
|
|
|
+ v-if="child.type === 'time'"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="isEdit ? child.title : ''"
|
|
|
+ type="date"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ value-format="x"
|
|
|
+ />
|
|
|
+
|
|
|
+ <DeptSelect
|
|
|
+ v-if="child.type === 'dept-select'"
|
|
|
+ v-model="formData['deptId']"
|
|
|
+ :defaultValue="formData['deptId'] ?? ''"
|
|
|
+ />
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-if="child.type === 'select'"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="isEdit ? child.title : '-'"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="opt in child.options"
|
|
|
+ :key="opt.value"
|
|
|
+ :label="opt.label"
|
|
|
+ :value="opt.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-input
|
|
|
+ v-if="child?.type === undefined"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ placeholder=""
|
|
|
+ />
|
|
|
+ <div v-if="child?.type === 'button'" class="generate-num">
|
|
|
+ <el-input v-model="formData[child?.name]" placeholder="" :disabled="true" />
|
|
|
+ <ElButton
|
|
|
+ v-if="isEdit"
|
|
|
+ type="primary"
|
|
|
+ style="width: 70px; height: 30px; margin-left: 10px"
|
|
|
+ @click="generateStaffNumber()"
|
|
|
+ >生成工号</ElButton
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </li>
|
|
|
+ <li></li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-item" id="gzkxx">
|
|
|
+ <div class="title">
|
|
|
+ <i></i>
|
|
|
+ <span>工资卡信息</span>
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-card">
|
|
|
+ <ul>
|
|
|
+ <li v-for="(child, c) in formConfigList[2].children" :key="c">
|
|
|
+ <el-form-item :label="`${child.title}:`" :prop="child.name">
|
|
|
+ <el-date-picker
|
|
|
+ v-if="child.type === 'time'"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="isEdit ? child.title : ''"
|
|
|
+ type="date"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ value-format="x"
|
|
|
+ />
|
|
|
+
|
|
|
+ <DeptSelect
|
|
|
+ v-if="child.type === 'dept-select'"
|
|
|
+ v-model="formData['deptId']"
|
|
|
+ :defaultValue="formData['deptId'] ?? ''"
|
|
|
+ />
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-if="child.type === 'select'"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="isEdit ? child.title : '-'"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="opt in child.options"
|
|
|
+ :key="opt.value"
|
|
|
+ :label="opt.label"
|
|
|
+ :value="opt.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-input
|
|
|
+ v-if="child?.type === undefined"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ placeholder=""
|
|
|
+ />
|
|
|
+ <div v-if="child?.type === 'button'" class="generate-num">
|
|
|
+ <el-input v-model="formData[child?.name]" placeholder="" :disabled="true" />
|
|
|
+ <ElButton
|
|
|
+ v-if="isEdit"
|
|
|
+ type="primary"
|
|
|
+ style="width: 70px; height: 30px; margin-left: 10px"
|
|
|
+ @click="generateStaffNumber()"
|
|
|
+ >生成工号</ElButton
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </li>
|
|
|
+ <li></li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-item" id="jjlxrxx">
|
|
|
+ <div class="title">
|
|
|
+ <i></i>
|
|
|
+ <span>紧急联系人信息</span>
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-card">
|
|
|
+ <ul>
|
|
|
+ <li v-for="(child, c) in formConfigList[3].children" :key="c">
|
|
|
+ <el-form-item :label="`${child.title}:`" :prop="child.name">
|
|
|
+ <el-date-picker
|
|
|
+ v-if="child.type === 'time'"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="isEdit ? child.title : ''"
|
|
|
+ type="date"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ value-format="x"
|
|
|
+ />
|
|
|
+
|
|
|
+ <DeptSelect
|
|
|
+ v-if="child.type === 'dept-select'"
|
|
|
+ v-model="formData['deptId']"
|
|
|
+ :defaultValue="formData['deptId'] ?? ''"
|
|
|
+ />
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-if="child.type === 'select'"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="isEdit ? child.title : '-'"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="opt in child.options"
|
|
|
+ :key="opt.value"
|
|
|
+ :label="opt.label"
|
|
|
+ :value="opt.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-input
|
|
|
+ v-if="child?.type === undefined"
|
|
|
+ v-model="formData[child?.name]"
|
|
|
+ placeholder=""
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </li>
|
|
|
+ <li></li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <el-input
|
|
|
- v-if="child?.type === undefined"
|
|
|
- v-model="formData[child?.name]"
|
|
|
- placeholder=""
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </li>
|
|
|
- <li></li>
|
|
|
- </ul>
|
|
|
+ <div class="my-portrait-item" id="gzjl">
|
|
|
+ <WorkTable
|
|
|
+ :defaultData="formData['workList']"
|
|
|
+ @onSave="saveWorkList"
|
|
|
+ :onlyRead="type == 'view'"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-item" id="jtcy">
|
|
|
+ <FamilyTable
|
|
|
+ :defaultData="formData['familyList']"
|
|
|
+ @onSave="saveFamilyList"
|
|
|
+ :onlyRead="type == 'view'"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-item" id="xxjl">
|
|
|
+ <SchoolTable
|
|
|
+ :defaultData="formData['schoolList']"
|
|
|
+ @onSave="saveSchoolList"
|
|
|
+ :onlyRead="type == 'view'"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="my-portrait-item" id="jxkh">
|
|
|
+ <PerformanceTable
|
|
|
+ :defaultData="formData['performanceList']"
|
|
|
+ @onSave="savePerformanceList"
|
|
|
+ :onlyRead="type == 'view'"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="my-portrait-item">
|
|
|
- <WorkTable
|
|
|
- :defaultData="formData['workList']"
|
|
|
- @onSave="saveWorkList"
|
|
|
- :onlyRead="type == 'view'"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="my-portrait-item">
|
|
|
- <FamilyTable
|
|
|
- :defaultData="formData['familyList']"
|
|
|
- @onSave="saveFamilyList"
|
|
|
- :onlyRead="type == 'view'"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="my-portrait-item">
|
|
|
- <SchoolTable
|
|
|
- :defaultData="formData['schoolList']"
|
|
|
- @onSave="saveSchoolList"
|
|
|
- :onlyRead="type == 'view'"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="my-portrait-item">
|
|
|
- <PerformanceTable
|
|
|
- :defaultData="formData['performanceList']"
|
|
|
- @onSave="savePerformanceList"
|
|
|
- :onlyRead="type == 'view'"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <el-row justify="end">
|
|
|
- <el-form-item v-if="isEdit">
|
|
|
- <el-button color="#1B80EB" type="primary" @click="submitForm(formRef)">保存</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -444,90 +455,43 @@ const savePerformanceList = (data: any[]) => {
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.staff-files-wrap {
|
|
|
- height: calc(100% - 10px);
|
|
|
- padding: 26px 30px;
|
|
|
- margin: 40px 0 25px;
|
|
|
- overflow: hidden;
|
|
|
- background: #fff;
|
|
|
- border-radius: 20px;
|
|
|
-
|
|
|
- .staff-name {
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
-
|
|
|
- span {
|
|
|
- display: block;
|
|
|
- font-family: 'Microsoft YaHei';
|
|
|
- font-size: 32px;
|
|
|
- font-weight: bold;
|
|
|
- color: #000000;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
-
|
|
|
- .staff-avator {
|
|
|
- width: 36px;
|
|
|
- height: 36px;
|
|
|
- margin-right: 12px;
|
|
|
- cursor: pointer;
|
|
|
- border-radius: 50%;
|
|
|
- }
|
|
|
- }
|
|
|
+ height: 100%;
|
|
|
|
|
|
.my-portrait {
|
|
|
width: 100%;
|
|
|
- height: calc(100% - 40px);
|
|
|
+ height: 100%;
|
|
|
padding: 0 0 10px;
|
|
|
- overflow: auto;
|
|
|
- .my-portrait-item {
|
|
|
- margin-bottom: 20px;
|
|
|
- width: 100%;
|
|
|
- .title {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- margin-bottom: 8px;
|
|
|
-
|
|
|
- i {
|
|
|
- display: block;
|
|
|
- width: 16px;
|
|
|
- height: 16px;
|
|
|
- margin-right: 9px;
|
|
|
- background: url('../../../../assets/imgs/OA/mine/star.png') center no-repeat;
|
|
|
- background-size: 100%;
|
|
|
- }
|
|
|
-
|
|
|
- span {
|
|
|
- font-size: 18px;
|
|
|
- font-weight: bold;
|
|
|
- color: #000000;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- ul {
|
|
|
- display: flex;
|
|
|
- padding: 20px 40px 0;
|
|
|
- background: #f7f8fa;
|
|
|
- border-radius: 4px;
|
|
|
- flex-wrap: wrap;
|
|
|
- justify-content: space-between;
|
|
|
-
|
|
|
- li {
|
|
|
- width: calc(33.3% - 40px);
|
|
|
- }
|
|
|
- }
|
|
|
+ overflow: hidden;
|
|
|
+ :deep(.el-form) {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ height: 100% !important;
|
|
|
}
|
|
|
- .my-portrait-item-first {
|
|
|
+ .my-portrait-header {
|
|
|
+ background: #fff;
|
|
|
+ padding: 26px 30px;
|
|
|
+ padding-bottom: 0px;
|
|
|
+ overflow: hidden;
|
|
|
+ border-radius: 20px;
|
|
|
display: flex;
|
|
|
+ align-content: center;
|
|
|
+ margin-bottom: 15px;
|
|
|
> .user-card {
|
|
|
width: 160px;
|
|
|
- margin-right: 20px;
|
|
|
+ margin-right: 10px;
|
|
|
}
|
|
|
> .my-portrait-card {
|
|
|
flex: 1;
|
|
|
+ position: relative;
|
|
|
+ > .btn_box {
|
|
|
+ position: absolute;
|
|
|
+ right: 0px;
|
|
|
+ }
|
|
|
> .user-base-info {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
margin-bottom: 10px;
|
|
|
+ margin-left: 20px;
|
|
|
> h4 {
|
|
|
font-size: 22px;
|
|
|
color: #111518;
|
|
@@ -540,15 +504,97 @@ const savePerformanceList = (data: any[]) => {
|
|
|
> ul {
|
|
|
> li {
|
|
|
display: inline-block;
|
|
|
- width: calc(25% - 50px);
|
|
|
+ width: calc(20% - 30px);
|
|
|
text-align: left;
|
|
|
- margin-right: 50px;
|
|
|
+ &:not(:nth-child(5n + 5)) {
|
|
|
+ margin-right: 30px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ .my-portrait-wrap {
|
|
|
+ background: #fff;
|
|
|
+ padding: 26px 30px;
|
|
|
+ padding-top: 0px;
|
|
|
+ border-radius: 20px;
|
|
|
+ overflow-y: auto;
|
|
|
+ flex: 1;
|
|
|
+ flex-grow: 1;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ > .my-portrait-nav {
|
|
|
+ display: flex;
|
|
|
+ border-bottom: 1px solid #e5eff7;
|
|
|
+ margin: 0px -30px;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ padding: 0px 20px;
|
|
|
+ > li {
|
|
|
+ padding: 15px;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 17px;
|
|
|
+ position: relative;
|
|
|
+ &.active {
|
|
|
+ color: #2e77e6;
|
|
|
+ &::after {
|
|
|
+ display: block;
|
|
|
+ content: '';
|
|
|
+ width: 20px;
|
|
|
+ height: 3px;
|
|
|
+ background: #2e77e6;
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0px;
|
|
|
+ left: 0px;
|
|
|
+ right: 0px;
|
|
|
+ margin: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ > .my-portrait-container {
|
|
|
+ overflow-y: auto;
|
|
|
+ flex: 1;
|
|
|
+ flex-grow: 1;
|
|
|
+ > .my-portrait-item {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ width: 100%;
|
|
|
+ .title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 8px;
|
|
|
+
|
|
|
+ i {
|
|
|
+ display: block;
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ margin-right: 9px;
|
|
|
+ background: url('../../../../assets/imgs/OA/mine/star.png') center no-repeat;
|
|
|
+ background-size: 100%;
|
|
|
+ }
|
|
|
+
|
|
|
+ span {
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #000000;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ ul {
|
|
|
+ display: flex;
|
|
|
+ padding: 20px 40px 0;
|
|
|
+ background: #f7f8fa;
|
|
|
+ border-radius: 4px;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: space-between;
|
|
|
+
|
|
|
+ li {
|
|
|
+ width: calc(33.3% - 40px);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
.form-unable-edit {
|
|
|
.my-portrait-item {
|
|
|
ul {
|
|
@@ -556,7 +602,6 @@ const savePerformanceList = (data: any[]) => {
|
|
|
border: 1px solid #e4e9f1;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
:deep(.el-form) {
|
|
|
.el-input.is-disabled .el-input__wrapper {
|
|
|
background-color: unset;
|