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.
|
|
|
|
<template>
|
|
|
|
|
<!-- 遮罩层 也是整个组件的容器-->
|
|
|
|
|
<div class="pop-container" v-if="isShow">
|
|
|
|
|
<div class="message-container">
|
|
|
|
|
<!-- 两个icon放在一个容器中,但是只显示一个 -->
|
|
|
|
|
<div class="icon-container">
|
|
|
|
|
<div class="icon-container-success" v-if="type === 'success'">
|
|
|
|
|
<!-- 引用了iview的Icon组件 -->
|
|
|
|
|
<Icon class="icon-checkmark" type="md-checkmark" size="30" color="#D8DCE9" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="icon-container-error" v-if="type === 'error'">
|
|
|
|
|
<Icon class="icon-close" type="md-close" size="30" color="#D8DCE9" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<span class="message-text">{{ text }}</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
export default {
|
|
|
|
|
name: 'message',
|
|
|
|
|
props: {
|
|
|
|
|
type: { // type控制是成功还是失败
|
|
|
|
|
type: String,
|
|
|
|
|
default: 'success',
|
|
|
|
|
},
|
|
|
|
|
text: { // 弹窗的文字信息
|
|
|
|
|
type: String,
|
|
|
|
|
default: '',
|
|
|
|
|
},
|
|
|
|
|
isShow: { // 整个遮罩和弹窗是否显示
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="less">
|
|
|
|
|
.pop-container {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
z-index: 99999;
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
right: 0;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
background: rgba(24, 30, 53, 0.7);
|
|
|
|
|
backdrop-filter: blur(10px);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-container {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
min-width: 384px;
|
|
|
|
|
padding: 0 30px;
|
|
|
|
|
height: 170px;
|
|
|
|
|
background: #303e62;
|
|
|
|
|
box-shadow: 0px 0px 30px rgba(0, 0, 0, 0.1);
|
|
|
|
|
border-radius: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.icon-container {
|
|
|
|
|
position: relative;
|
|
|
|
|
height: 40px;
|
|
|
|
|
width: 40px;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
|
|
|
|
&-error {
|
|
|
|
|
background-color: #fe1b1b;
|
|
|
|
|
height: 40px;
|
|
|
|
|
width: 40px;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
|
|
|
|
.icon-close {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 5px;
|
|
|
|
|
bottom: 5px;
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&-success {
|
|
|
|
|
background-color: #4ad991;
|
|
|
|
|
height: 40px;
|
|
|
|
|
width: 40px;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
|
|
|
|
.icon-checkmark {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 4px;
|
|
|
|
|
bottom: 5px;
|
|
|
|
|
font-weight: 900;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.message-text {
|
|
|
|
|
margin-left: 12px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
line-height: 27px;
|
|
|
|
|
}</style>
|