You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
4.0 KiB

3 years ago
<template>
<div v-move class="key-indicators-shrink">
<div class="icon-circle" @click="shrinkClick">
<i :class="arrowType === 2 ? 'el-icon-arrow-right':'el-icon-arrow-left'" />
</div>
<img :src="require('@/assets/img/selBg.png')" alt="" :class="active">
<img class="imgCur" :src="require('@/assets/img/unselBg.png')" alt="" @click="handleType(1)">
<img class="imgOne" :src="require('@/assets/img/unselBg.png')" alt="" @click="handleType(2)">
<img class="imgTwo" :src="require('@/assets/img/unselBg.png')" alt="" @click="handleType(3)">
<img class="imgThree" :src="require('@/assets/img/unselBg.png')" alt="" @click="handleType(4)">
<span class="dataBase dataOne" :class="[active === 'imgCur' ? 'fontColor' : '']" @click="handleType(1)">关键指标</span>
<span class="dataBase dataTwo" :class="[active === 'imgOne' ? 'fontColor' : '']" @click="handleType(2)">数据集</span>
<span class="dataBase dataThree" :class="[active === 'imgTwo' ? 'fontColor' : '']" @click="handleType(3)">病历收集</span>
<span class="dataBase dataFour" :class="[active === 'imgThree' ? 'fontColor' : '']" @click="handleType(4)">常用业务</span>
</div>
</template>
<script>
export default {
directives: {
move(el, bindings) {
el.onmousedown = (e) => {
// const init = e.clientX
// const parent = document.getElementById('drawerKey')
// const initWidth = parent.offsetWidth
// document.onmousemove = function(e) {
// const end = e.clientX
// const newWidth = init - end + initWidth
// parent.style.width = newWidth + 'px'
// }
// document.onmouseup = function() {
// document.onmousemove = document.onmouseup = null
// }
}
}
},
props: {
arrowType: {
type: Number,
default: 1 // 1外面 2里面
}
},
data() {
return {
active: 'imgCur',
drawerFlag: false
}
},
mounted() {
},
methods: {
shrinkClick() {
this.active = 'imgCur'
if (this.arrowType === 1) {
this.$emit('display', true)
document.getElementsByClassName('key-indicators-shrink')[0].style.zIndex = 999
} else {
this.$emit('display', false)
document.getElementsByClassName('key-indicators-shrink')[0].style.zIndex = 9999
}
},
handleType(type) {
this.$emit('changeType', type)
if (type === 1) {
this.active = 'imgCur'
} else if (type === 2) {
this.active = 'imgOne'
} else if (type === 3) {
this.active = 'imgTwo'
} else if (type === 4) {
this.active = 'imgThree'
}
}
}
}
</script>
<style lang="scss" scoped>
.key-indicators-shrink {
width: 32px;
height: 100%;
position: relative;
background: linear-gradient(90deg, rgba(47, 130, 255, 0.3) 0%, rgba(255, 255, 255, 0) 100%);
.icon-circle {
border-radius: 50%;
width: 24px;
height: 24px;
border: 2px solid rgba(30, 121, 255, 0.4);
display: flex;
justify-content: center;
align-items: center;
margin-top: 18px;
margin-left: 3px;
cursor: pointer;
}
.el-icon-arrow-right,.el-icon-arrow-left {
color: #1C76FD;
font-weight: 700;
}
img {
width: 32px;
height: 142px;
}
.dataBase{
position: absolute;
display: inline-block;
color: #1C76FD;
margin-left: 6px;
writing-mode: vertical-rl;
letter-spacing: 3px;
cursor: pointer;
}
.fontColor{
color: white !important;
}
.dataOne{
top: 80px;
}
.dataTwo{
top: 210px;
}
.dataThree{
top: 328px;
}
.dataFour{
top: 455px;
}
.imgCur{
position: absolute;
left: 0;
top: 43px;
}
.imgOne{
position: absolute;
left: 0;
top: 163px;
}
.imgTwo{
position: absolute;
left: 0;
top: 287px;
}
.imgThree{
position: absolute;
left: 0;
top: 411px;
}
}
</style>