|
@@ -21,13 +21,13 @@
|
|
<img src="@/assets/imgs/OA/mine/man.png" alt="" />
|
|
<img src="@/assets/imgs/OA/mine/man.png" alt="" />
|
|
</p>
|
|
</p>
|
|
<h4>
|
|
<h4>
|
|
- <span>工号:0961</span>
|
|
|
|
|
|
+ <span>工号:{{ data?.loginName }}</span>
|
|
<div></div>
|
|
<div></div>
|
|
- <span>工龄:30年</span>
|
|
|
|
|
|
+ <span>司龄:{{ data?.sl }}年</span>
|
|
</h4>
|
|
</h4>
|
|
<div class="phoneBox">
|
|
<div class="phoneBox">
|
|
<img src="@/assets/imgs/OA/mine/phone.png" alt="" />
|
|
<img src="@/assets/imgs/OA/mine/phone.png" alt="" />
|
|
- <span>联系电话:182-0000-0000</span>
|
|
|
|
|
|
+ <span>联系电话:{{ data?.mobilePhone }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="contentList">
|
|
<div class="contentList">
|
|
@@ -38,7 +38,7 @@
|
|
</div>
|
|
</div>
|
|
<div class="textBox">
|
|
<div class="textBox">
|
|
<p>{{ item.name }}</p>
|
|
<p>{{ item.name }}</p>
|
|
- <p>{{ item.value }}</p>
|
|
|
|
|
|
+ <p>{{ data?.[item.value] }}</p>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
@@ -57,6 +57,9 @@ import CopperModal from './CopperModal.vue'
|
|
import avatarImg from '@/assets/imgs/avatar.gif'
|
|
import avatarImg from '@/assets/imgs/avatar.gif'
|
|
import { uploadAvatar } from '@/api/system/user/profile'
|
|
import { uploadAvatar } from '@/api/system/user/profile'
|
|
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
|
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
|
|
|
+import { useQuery } from '@tanstack/vue-query'
|
|
|
|
+import { getRecordsDetail } from '@/api/oa/staffRecords'
|
|
|
|
+
|
|
const { wsCache } = useCache()
|
|
const { wsCache } = useCache()
|
|
const user = wsCache.get(CACHE_KEY.USER)
|
|
const user = wsCache.get(CACHE_KEY.USER)
|
|
const message = useMessage()
|
|
const message = useMessage()
|
|
@@ -64,6 +67,12 @@ const avatar = user.user.avatar ? user.user.avatar : avatarImg
|
|
const sourceValue = ref('')
|
|
const sourceValue = ref('')
|
|
const cropperModelRef = ref()
|
|
const cropperModelRef = ref()
|
|
const userName = user.user.nickname ? user.user.nickname : 'Admin'
|
|
const userName = user.user.nickname ? user.user.nickname : 'Admin'
|
|
|
|
+
|
|
|
|
+const userId = user.user.id // 当前登录的编号
|
|
|
|
+
|
|
|
|
+const { data } = useQuery(['fetch-staff-detail-left', userId], async () => {
|
|
|
|
+ return await getRecordsDetail({ userId })
|
|
|
|
+})
|
|
// 获取assets静态资源
|
|
// 获取assets静态资源
|
|
const getAssetURL = (url: string) => {
|
|
const getAssetURL = (url: string) => {
|
|
return new URL(`../../../../assets/imgs/OA/mine/${url}.png`, import.meta.url).href
|
|
return new URL(`../../../../assets/imgs/OA/mine/${url}.png`, import.meta.url).href
|
|
@@ -72,22 +81,22 @@ const contentList = ref([
|
|
{
|
|
{
|
|
icon: 'zgzw',
|
|
icon: 'zgzw',
|
|
name: '在岗职位',
|
|
name: '在岗职位',
|
|
- value: '项目经理'
|
|
|
|
|
|
+ value: 'drzw'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
icon: 'ssbm',
|
|
icon: 'ssbm',
|
|
name: '所属部门',
|
|
name: '所属部门',
|
|
- value: '自然资源产品部'
|
|
|
|
|
|
+ value: 'ssbm'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
icon: 'synj',
|
|
icon: 'synj',
|
|
name: '剩余年假',
|
|
name: '剩余年假',
|
|
- value: '2天'
|
|
|
|
|
|
+ value: 'synj'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
icon: 'rzsj',
|
|
icon: 'rzsj',
|
|
name: '入职时间',
|
|
name: '入职时间',
|
|
- value: '2020-02-02'
|
|
|
|
|
|
+ value: 'rgssj'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
icon: 'qdgs',
|
|
icon: 'qdgs',
|
|
@@ -113,38 +122,41 @@ onMounted(() => {})
|
|
</script>
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
.mineCenterLeft {
|
|
.mineCenterLeft {
|
|
|
|
+ position: relative;
|
|
width: 350px;
|
|
width: 350px;
|
|
height: 100%;
|
|
height: 100%;
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
border-radius: 10px;
|
|
border-radius: 10px;
|
|
- position: relative;
|
|
|
|
|
|
+
|
|
.leftImgs {
|
|
.leftImgs {
|
|
position: absolute;
|
|
position: absolute;
|
|
- left: -3px;
|
|
|
|
top: -3px;
|
|
top: -3px;
|
|
|
|
+ left: -3px;
|
|
}
|
|
}
|
|
|
|
|
|
.headImgs {
|
|
.headImgs {
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 64px;
|
|
|
|
+ left: 50%;
|
|
|
|
+ display: flex;
|
|
width: 92px;
|
|
width: 92px;
|
|
height: 92px;
|
|
height: 92px;
|
|
- border-radius: 50%;
|
|
|
|
- background-color: #fff;
|
|
|
|
padding: 5px;
|
|
padding: 5px;
|
|
- position: absolute;
|
|
|
|
- left: 50%;
|
|
|
|
margin-left: -46px;
|
|
margin-left: -46px;
|
|
- top: 64px;
|
|
|
|
- display: flex;
|
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ border-radius: 50%;
|
|
align-items: center;
|
|
align-items: center;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
|
+
|
|
.userIcon {
|
|
.userIcon {
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
+
|
|
.imgsChange {
|
|
.imgsChange {
|
|
position: absolute;
|
|
position: absolute;
|
|
- right: 0px;
|
|
|
|
top: 64px;
|
|
top: 64px;
|
|
|
|
+ right: 0;
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -153,61 +165,69 @@ onMounted(() => {})
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 100%;
|
|
height: 100%;
|
|
margin-top: 165px;
|
|
margin-top: 165px;
|
|
|
|
+
|
|
.contentBox {
|
|
.contentBox {
|
|
- width: 100%;
|
|
|
|
display: flex;
|
|
display: flex;
|
|
|
|
+ width: 100%;
|
|
|
|
+ padding-bottom: 25px;
|
|
|
|
+ border-bottom: 1px solid #dee0e3;
|
|
align-items: center;
|
|
align-items: center;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
- border-bottom: 1px solid #dee0e3;
|
|
|
|
- padding-bottom: 25px;
|
|
|
|
|
|
+
|
|
p {
|
|
p {
|
|
- color: #2d333c;
|
|
|
|
|
|
+ position: relative;
|
|
|
|
+ margin-bottom: 15px;
|
|
font-size: 20px;
|
|
font-size: 20px;
|
|
font-weight: 600;
|
|
font-weight: 600;
|
|
- margin-bottom: 15px;
|
|
|
|
- position: relative;
|
|
|
|
|
|
+ color: #2d333c;
|
|
|
|
+
|
|
img {
|
|
img {
|
|
position: absolute;
|
|
position: absolute;
|
|
- right: -17px;
|
|
|
|
top: 0;
|
|
top: 0;
|
|
|
|
+ right: -17px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
h4 {
|
|
h4 {
|
|
|
|
+ display: flex;
|
|
width: 100%;
|
|
width: 100%;
|
|
- text-align: center;
|
|
|
|
|
|
+ margin-bottom: 15px;
|
|
|
|
+ font-size: 16px;
|
|
font-weight: 400;
|
|
font-weight: 400;
|
|
color: #dee0e3;
|
|
color: #dee0e3;
|
|
- font-size: 16px;
|
|
|
|
- display: flex;
|
|
|
|
|
|
+ text-align: center;
|
|
align-items: center;
|
|
align-items: center;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
- margin-bottom: 15px;
|
|
|
|
|
|
+
|
|
span {
|
|
span {
|
|
- font-weight: 400;
|
|
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
|
+ font-weight: 400;
|
|
color: #2d333c;
|
|
color: #2d333c;
|
|
}
|
|
}
|
|
|
|
+
|
|
div {
|
|
div {
|
|
width: 1px;
|
|
width: 1px;
|
|
height: 16px;
|
|
height: 16px;
|
|
- opacity: 1;
|
|
|
|
- background-color: #dee0e3;
|
|
|
|
margin: 0 20px;
|
|
margin: 0 20px;
|
|
|
|
+ background-color: #dee0e3;
|
|
|
|
+ opacity: 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
.phoneBox {
|
|
.phoneBox {
|
|
|
|
+ display: flex;
|
|
width: 260px;
|
|
width: 260px;
|
|
height: 36px;
|
|
height: 36px;
|
|
- border-radius: 4px 4px 4px 4px;
|
|
|
|
border: 1px solid #2e77e6;
|
|
border: 1px solid #2e77e6;
|
|
- display: flex;
|
|
|
|
|
|
+ border-radius: 4px;
|
|
align-items: center;
|
|
align-items: center;
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
|
+
|
|
span {
|
|
span {
|
|
- color: #2e77e6;
|
|
|
|
- font-size: 16px;
|
|
|
|
margin-left: 10px;
|
|
margin-left: 10px;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ color: #2e77e6;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -216,31 +236,37 @@ onMounted(() => {})
|
|
width: 100%;
|
|
width: 100%;
|
|
height: calc(100% - 345px);
|
|
height: calc(100% - 345px);
|
|
overflow-y: auto;
|
|
overflow-y: auto;
|
|
|
|
+
|
|
ul {
|
|
ul {
|
|
width: 100%;
|
|
width: 100%;
|
|
padding: 0 20px;
|
|
padding: 0 20px;
|
|
|
|
+
|
|
li {
|
|
li {
|
|
- width: 100%;
|
|
|
|
display: flex;
|
|
display: flex;
|
|
- align-items: center;
|
|
|
|
|
|
+ width: 100%;
|
|
margin: 25px 0;
|
|
margin: 25px 0;
|
|
|
|
+ align-items: center;
|
|
|
|
+
|
|
.iconBox {
|
|
.iconBox {
|
|
|
|
+ display: flex;
|
|
width: 48px;
|
|
width: 48px;
|
|
height: 48px;
|
|
height: 48px;
|
|
- display: flex;
|
|
|
|
- align-items: center;
|
|
|
|
- justify-content: center;
|
|
|
|
border: 1px solid #dee0e3;
|
|
border: 1px solid #dee0e3;
|
|
border-radius: 50%;
|
|
border-radius: 50%;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
}
|
|
}
|
|
|
|
+
|
|
.textBox {
|
|
.textBox {
|
|
margin-left: 15px;
|
|
margin-left: 15px;
|
|
|
|
+
|
|
p {
|
|
p {
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
}
|
|
}
|
|
|
|
+
|
|
p:nth-child(1) {
|
|
p:nth-child(1) {
|
|
- color: #626b70;
|
|
|
|
margin-bottom: 10px;
|
|
margin-bottom: 10px;
|
|
|
|
+ color: #626b70;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|