<!--
|
描述: 人员占比
|
作者: Jack Chen
|
日期: 2020-05-02
|
-->
|
|
<template>
|
<div class="wrap-container sn-container">
|
<div class="sn-content">
|
<div class="sn-title">人员占比</div>
|
<div class="sn-body">
|
<div class="wrap-container">
|
<div class="person">
|
<div class="pers person1"></div>
|
<div class="pers person2"></div>
|
<div class="pers person3"></div>
|
</div>
|
|
<div class="svgs">
|
<svg width="244" height="264" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
<defs>
|
<linearGradient id="linear" x1="0%" y1="0%" x2="0%" y2="100%">
|
<stop offset="0%" style="stop-color:#0a6aff;stop-opacity:0.47"></stop>
|
<stop offset="40%" style="stop-color:#5cffff;stop-opacity:1"></stop>
|
<stop offset="100%" style="stop-color:#0a6aff;stop-opacity:1"></stop>
|
</linearGradient>
|
<marker id="arrow" markerWidth="10" markerHeight="10" refX="0" refY="3" orient="auto" markerUnits="strokeWidth">
|
<path d="M0,0 L0,6 L9,3 z" fill="rgb(11,108,255)"></path>
|
</marker>
|
</defs>
|
<path d="M134 86C136 86 80 85 77 208" fill="none" stroke="url(#linear)" stroke-opacity="1" marker-end="url(#arrow)"></path>
|
<path d="M136 86C138 86 212 88 204 208" fill="none" stroke="url(#linear)" stroke-opacity="1" marker-end="url(#arrow)"></path>
|
<path d="M136 84C138 84 195 84 206 116" fill="none" stroke="url(#linear)" stroke-opacity="1" marker-end="url(#arrow)"></path>
|
<path d="M134 84C136 84 81 82 58 123" fill="none" stroke="url(#linear)" stroke-opacity="1" marker-end="url(#arrow)"></path>
|
<path d="M132 86C134 86 120 68 93 67" fill="none" stroke="url(#linear)" stroke-opacity="1" marker-end="url(#arrow)"></path>
|
<path d="M134 86C136 86 132 78 134 74C136 69 150 52 150 52" fill="none" stroke="url(#linear)" stroke-opacity="1" marker-end="url(#arrow)"></path>
|
<path d="M134 85C136 85 146 65 183 65" fill="none" fill-opacity="0" stroke="url(#linear)" marker-end="url(#arrow)"></path>
|
</svg>
|
</div>
|
|
<div class="svgs">
|
<div class="text" :class="`per${index + 1}`" v-for="(item, index) in arrData" :key="index">
|
<span>{{ item.name }}</span>
|
<span>{{ item.number }}</span>人
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
name: "staffMix",
|
data() {
|
return {
|
arrData: [{
|
name: '前端工程师',
|
number: 3
|
},{
|
name: '后端工程师',
|
number: 5
|
},{
|
name: '网页设计师',
|
number: 2
|
},{
|
name: '测试工程师',
|
number: 2
|
},{
|
name: '产品经理',
|
number: 1
|
},{
|
name: '安卓工程师',
|
number: 1
|
},{
|
name: 'IOS工程师',
|
number: 1
|
}]
|
|
}
|
},
|
mounted() {
|
|
},
|
methods: {
|
|
},
|
beforeDestroy() {
|
|
}
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.sn-container {
|
left: 50px;
|
top: 1978px;
|
width: 432px;
|
height: 400px;
|
.person{
|
position: absolute;
|
top: 0;
|
width: 100%;
|
height: 100%;
|
.pers{
|
width: 100%;
|
height: 100%;
|
position: absolute;
|
top: 0;
|
left: 0;
|
background-repeat: no-repeat;
|
background-position: center center;
|
&.person1{
|
background-image: url(../../assets/img/online.png);
|
transform: rotateX(64deg) rotateZ(0deg);
|
top: 16%;
|
}
|
&.person2{
|
background-image: url(../../assets/img/cir-2.png);
|
animation: move 10s linear infinite;
|
-webkit-animation: move 10s linear infinite;
|
transform: rotateX(64deg);
|
top: 16%;
|
}
|
&.person3{
|
background-image: url(../../assets/img/person-1.png);
|
top: 5%;
|
}
|
}
|
}
|
|
.svgs{
|
width: 270px;
|
height: 260px;
|
margin: auto;
|
top: 0;
|
position: absolute;
|
right: 0;
|
left: 0;
|
bottom: 0;
|
}
|
.text{
|
position: absolute;
|
width: 50px;
|
height: 50px;
|
background-image: url(../../assets/img/cir-1.png);
|
background-repeat: no-repeat;
|
background-position: center center;
|
color: rgb(114,198,230);
|
text-align: center;
|
span {
|
&:nth-child(1) {
|
display: block;
|
width: 52px;
|
margin-top: 10px;
|
line-height: 12px;
|
transform: scale(0.85);
|
height: 22px;
|
}
|
&:nth-child(2) {
|
font-size: 14px;
|
font-weight: bold;
|
}
|
}
|
&.per1{
|
top: 215px;
|
left: 50px;
|
}
|
&.per2{
|
top: 113px;
|
left: 3px;
|
}
|
&.per3{
|
top: 45px;
|
left: 35px;
|
}
|
&.per4{
|
left: 120px;
|
}
|
&.per5{
|
top: 45px;
|
left: 190px;
|
}
|
&.per6{
|
top: 105px;
|
left: 210px;
|
}
|
&.per7{
|
top: 215px;
|
left: 180px;
|
}
|
}
|
|
}
|
|
@-webkit-keyframes move {
|
0% {
|
transform: rotateX(-64deg) rotateZ(360deg);
|
}
|
100% {
|
transform: rotateX(-64deg) rotateZ(0deg);
|
}
|
}
|
@keyframes move {
|
0% {
|
transform: rotateX(-64deg) rotateZ(360deg);
|
}
|
100% {
|
transform: rotateX(-64deg) rotateZ(0deg);
|
}
|
}
|
</style>
|