<!--
|
* @Descripttion: 状态指示器
|
* @version: 1.0
|
* @Author: sakuya
|
* @Date: 2021年11月11日09:30:12
|
* @LastEditors:
|
* @LastEditTime:
|
-->
|
|
<template>
|
<span class="sc-state" :class="[{'sc-status-processing':pulse}, 'sc-state-bg--'+type]"></span>
|
</template>
|
|
<script>
|
export default {
|
props: {
|
type: { type: String, default: "primary" },
|
pulse: { type: Boolean, default: false }
|
}
|
}
|
</script>
|
|
<style scoped>
|
.sc-state {display: inline-block;background: #000;width: 8px;height: 8px;border-radius: 50%;vertical-align: middle;}
|
.sc-status-processing {position: relative;}
|
.sc-status-processing:after {position: absolute;top:0px;left:0px;width: 100%;height: 100%;border-radius: 50%;background: inherit;content: '';animation: warn 1.2s ease-in-out infinite;}
|
|
.sc-state-bg--primary {background: var(--el-color-primary);}
|
.sc-state-bg--success {background: var(--el-color-success);}
|
.sc-state-bg--warning {background: var(--el-color-warning);}
|
.sc-state-bg--danger {background: var(--el-color-danger);}
|
.sc-state-bg--info {background: var(--el-color-info);}
|
|
@keyframes warn {
|
0% {
|
transform: scale(0.5);
|
opacity: 1;
|
}
|
30% {
|
opacity: 0.7;
|
}
|
100% {
|
transform: scale(2.5);
|
opacity: 0;
|
}
|
}
|
</style>
|