173 lines
3.6 KiB
Vue
173 lines
3.6 KiB
Vue
|
<template>
|
|||
|
<OutMask :bg="'loading'">
|
|||
|
<div class="loadContent">
|
|||
|
<div class="imgBox">
|
|||
|
<div class="left" :class="type" :style="{ width: imgWidth }">
|
|||
|
<!-- <img src="../assets/mobile/loading_line.png" alt="" /> -->
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="right" :class="type" :style="{ width: imgWidth }">
|
|||
|
<!-- <img src="../assets/mobile/loading_line.png" alt="" /> -->
|
|||
|
</div>
|
|||
|
<img
|
|||
|
class="load_img"
|
|||
|
:class="type"
|
|||
|
src="@/assets/mobile/loading.png"
|
|||
|
alt=""
|
|||
|
/>
|
|||
|
</div>
|
|||
|
<p class="loadText">{{ loading }} %</p>
|
|||
|
</div>
|
|||
|
</OutMask>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
OutMask: () => import("./outMask.vue"),
|
|||
|
},
|
|||
|
props: {
|
|||
|
bg: {
|
|||
|
type: String,
|
|||
|
default: "",
|
|||
|
},
|
|||
|
loading: {
|
|||
|
type: Number,
|
|||
|
default: 0,
|
|||
|
},
|
|||
|
type: {
|
|||
|
type: String,
|
|||
|
default: "",
|
|||
|
},
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
content: "",
|
|||
|
imgWidth: 0,
|
|||
|
title: "",
|
|||
|
};
|
|||
|
},
|
|||
|
watch: {
|
|||
|
loading: {
|
|||
|
handler(val, oldName) {
|
|||
|
if (this.type === "pc") {
|
|||
|
// this.imgWidth = ((val / 100) * 884) / 100 + "rem";
|
|||
|
this.imgWidth = (val / 100) * 46 + "vw";
|
|||
|
} else {
|
|||
|
this.imgWidth = ((val / 100) * 310) / 100 + "rem";
|
|||
|
}
|
|||
|
},
|
|||
|
// 开启深度监听:只要obj中的任何一个属性发生改变,都会触发相应的代码
|
|||
|
deep: true,
|
|||
|
immediate: true,
|
|||
|
},
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
console.log(this.loading);
|
|||
|
// this.imgWidth = (this.loading / 100) * 884 + "px";
|
|||
|
},
|
|||
|
methods: {
|
|||
|
closeArgument() {
|
|||
|
this.$emit("closeArgument");
|
|||
|
},
|
|||
|
// loadNumber() {
|
|||
|
// this.intervalId = setInterval(() => {
|
|||
|
// if (this.percent > this.loading) {
|
|||
|
// this.loading += 1;
|
|||
|
// console.log(this.loading);
|
|||
|
// } else {
|
|||
|
// window.clearInterval(this.intervalId);
|
|||
|
// this.intervalId = null;
|
|||
|
// setTimeout(() => {
|
|||
|
// // this.showloading = false;
|
|||
|
// }, 20);
|
|||
|
// }
|
|||
|
// }, 10);
|
|||
|
// },
|
|||
|
},
|
|||
|
};
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss">
|
|||
|
.loadContent {
|
|||
|
width: 100%;
|
|||
|
height: 100%;
|
|||
|
text-align: center;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-self: center;
|
|||
|
flex-direction: column;
|
|||
|
.imgBox {
|
|||
|
width: 100%;
|
|||
|
margin: 0 auto;
|
|||
|
position: relative;
|
|||
|
|
|||
|
.left,
|
|||
|
.right {
|
|||
|
position: absolute;
|
|||
|
width: 88px;
|
|||
|
height: auto;
|
|||
|
bottom: 20px;
|
|||
|
height: 3px;
|
|||
|
background-image: linear-gradient(to left, #d89c85, #f4d1bf);
|
|||
|
&.pc {
|
|||
|
bottom: 12px;
|
|||
|
img {
|
|||
|
height: 100%;
|
|||
|
}
|
|||
|
}
|
|||
|
&::after {
|
|||
|
content: "";
|
|||
|
position: absolute;
|
|||
|
top: 50%;
|
|||
|
width: 46px;
|
|||
|
height: 44px;
|
|||
|
background: url("@/assets/mobile/load_star.png");
|
|||
|
background-size: contain;
|
|||
|
background-position: center;
|
|||
|
background-repeat: no-repeat;
|
|||
|
left: 0;
|
|||
|
transform: translate(-48%, -50%);
|
|||
|
}
|
|||
|
|
|||
|
img {
|
|||
|
width: 100%;
|
|||
|
// height: 100%;
|
|||
|
position: absolute;
|
|||
|
left: 0;
|
|||
|
top: 50%;
|
|||
|
transform: translateY(-50%);
|
|||
|
}
|
|||
|
}
|
|||
|
.left {
|
|||
|
left: 0;
|
|||
|
// transform: rotate(180deg);
|
|||
|
background-image: linear-gradient(to right, #d89c85, #f4d1bf);
|
|||
|
&::after {
|
|||
|
right: 0;
|
|||
|
left: auto;
|
|||
|
transform: translate(45%, -50%);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.right {
|
|||
|
right: 0;
|
|||
|
}
|
|||
|
}
|
|||
|
.load_img {
|
|||
|
width: 136px;
|
|||
|
// width: 135px;
|
|||
|
&.pc {
|
|||
|
width: 154px;
|
|||
|
// width: 153px;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.loadText {
|
|||
|
font-size: 35px;
|
|||
|
text-align: center;
|
|||
|
color: #eeccae;
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|