Files
zhgh_zjvtit/target/classes/static/components/plugins/spin/index.vue
T
2026-08-26 14:25:17 +08:00

350 lines
8.1 KiB
Vue

<!--<template>-->
<!-- <div>-->
<!-- <div class="ant-spin-nested-loading" v-if="spinning && $slots.default">-->
<!-- <div class="ant-spin ant-spin-spinning" :class="{ 'ant-spin-lg': size === 'large', 'ant-spin-small': size === 'small' }">-->
<!-- <span class="ant-spin-dot ant-spin-dot-spin">-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- </span>-->
<!-- <div class="ant-spin-text" v-if="$props.tip">-->
<!-- {{ tip }}-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="ant-spin-container" :class="{ 'ant-spin-blur': spinning }">-->
<!-- <slot></slot>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="ant-spin ant-spin-spinning" :class="{ 'ant-spin-lg': size === 'large', 'ant-spin-small': size === 'small' }" v-else>-->
<!-- <span class="ant-spin-dot ant-spin-dot-spin">-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- <i class="ant-spin-dot-item"></i>-->
<!-- </span>-->
<!-- <div class="ant-spin-text" v-if="$props.tip">-->
<!-- {{ tip }}-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!--</template>-->
<!--<script>-->
<!--module.exports = {-->
<!-- name: "index",-->
<!-- props: {-->
<!-- size: String,-->
<!-- tip: String,-->
<!-- spinning: Boolean-->
<!-- },-->
<!-- computed: {}-->
<!--}-->
<!--</script>-->
<template>
<!-- <div :class="spinClassName" :style="style">-->
<!-- <div v-if="renderIndicator" class="ant-spin-dot">-->
<!-- <span class="ant-spin-dot-item"></span>-->
<!-- <span class="ant-spin-dot-item"></span>-->
<!-- <span class="ant-spin-dot-item"></span>-->
<!-- <span class="ant-spin-dot-item"></span>-->
<!-- </div>-->
<!-- <div v-if="tip" class="ant-spin-text">{{ tip }}</div>-->
<!-- <slot></slot>-->
<!-- </div>-->
<div class="ant-spin-nested-loading" data-v-2f42c11b="">
<div>
<div class="ant-spin ant-spin-spinning">
<span class="ant-spin-dot ant-spin-dot-spin">
<i class="ant-spin-dot-item"></i>
<i class="ant-spin-dot-item"></i>
<i class="ant-spin-dot-item"></i>
<i class="ant-spin-dot-item"></i>
</span>
<!---->
</div>
</div>
<div class="ant-spin-container ant-spin-blur">
<el-alert>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
<p>22222222222222</p>
</el-alert>
</div>
</div>
</template>
<script>
module.exports = {
name: "EL_SPIN",
props: {
spinning: {
type: Boolean,
default: undefined
},
size: String,
wrapperClassName: String,
tip: String,
delay: Number,
indicator: String
},
computed: {
spinClassName() {
const { size, spinning } = this
return {
[`ant-spin`]: true,
[`ant-spin-sm`]: size === "small",
[`ant-spin-lg`]: size === "large",
[`ant-spin-spinning`]: spinning,
[`ant-spin-show-text`]: !!this.tip,
[`ant-spin-rtl`]: this.direction === "rtl"
}
},
renderIndicator() {
// const indicator = getComponent(this, "indicator")
// return indicator !== null && !Array.isArray(indicator)
return true
},
style() {
return this.$attrs.style
},
direction() {
// return this.configProvider.direction
}
}
}
</script>
<style scoped>
.ant-spin {
box-sizing: border-box;
margin: 0;
padding: 0;
color: #000000d9;
font-size: 14px;
font-variant: tabular-nums;
line-height: 1.5715;
list-style: none;
font-feature-settings: tnum;
position: absolute;
display: none;
color: #1890ff;
text-align: center;
vertical-align: middle;
opacity: 0;
transition: transform 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);
}
.ant-spin-spinning {
position: static;
display: inline-block;
opacity: 1;
}
.ant-spin-nested-loading {
position: relative;
}
.ant-spin-nested-loading > div > .ant-spin {
position: absolute;
top: 0;
left: 0;
z-index: 4;
display: block;
width: 100%;
height: 100%;
max-height: 400px;
}
.ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
position: absolute;
top: 50%;
left: 50%;
margin: -10px;
}
.ant-spin-nested-loading > div > .ant-spin .ant-spin-text {
position: absolute;
top: 50%;
width: 100%;
padding-top: 5px;
text-shadow: 0 1px 2px #fff;
}
.ant-spin-nested-loading > div > .ant-spin.ant-spin-show-text .ant-spin-dot {
margin-top: -20px;
}
.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-dot {
margin: -7px;
}
.ant-spin-nested-loading > div > .ant-spin-sm .ant-spin-text {
padding-top: 2px;
}
.ant-spin-nested-loading > div > .ant-spin-sm.ant-spin-show-text .ant-spin-dot {
margin-top: -17px;
}
.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-dot {
margin: -16px;
}
.ant-spin-nested-loading > div > .ant-spin-lg .ant-spin-text {
padding-top: 11px;
}
.ant-spin-nested-loading > div > .ant-spin-lg.ant-spin-show-text .ant-spin-dot {
margin-top: -26px;
}
.ant-spin-container {
position: relative;
transition: opacity 0.3s;
}
.ant-spin-container:after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 10;
display: none \;
width: 100%;
height: 100%;
background: #fff;
opacity: 0;
transition: all 0.3s;
content: "";
pointer-events: none;
}
.ant-spin-blur {
clear: both;
overflow: hidden;
opacity: 0.5;
user-select: none;
pointer-events: none;
}
.ant-spin-blur:after {
opacity: 0.4;
pointer-events: auto;
}
.ant-spin-tip {
color: #00000073;
}
.ant-spin-dot {
position: relative;
display: inline-block;
font-size: 20px;
width: 1em;
height: 1em;
}
.ant-spin-dot-item {
position: absolute;
display: block;
width: 9px;
height: 9px;
background-color: #1890ff;
border-radius: 100%;
transform: scale(0.75);
transform-origin: 50% 50%;
opacity: 0.3;
animation: antSpinMove 1s infinite linear alternate;
}
.ant-spin-dot-item:nth-child(1) {
top: 0;
left: 0;
}
.ant-spin-dot-item:nth-child(2) {
top: 0;
right: 0;
animation-delay: 0.4s;
}
.ant-spin-dot-item:nth-child(3) {
right: 0;
bottom: 0;
animation-delay: 0.8s;
}
.ant-spin-dot-item:nth-child(4) {
bottom: 0;
left: 0;
animation-delay: 1.2s;
}
.ant-spin-dot-spin {
transform: rotate(45deg);
animation: antRotate 1.2s infinite linear;
}
.ant-spin-sm .ant-spin-dot {
font-size: 14px;
}
.ant-spin-sm .ant-spin-dot i {
width: 6px;
height: 6px;
}
.ant-spin-lg .ant-spin-dot {
font-size: 32px;
}
.ant-spin-lg .ant-spin-dot i {
width: 14px;
height: 14px;
}
.ant-spin.ant-spin-show-text .ant-spin-text {
display: block;
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.ant-spin-blur {
background: #fff;
opacity: 0.5;
}
}
@keyframes antSpinMove {
to {
opacity: 1;
}
}
@keyframes antRotate {
to {
transform: rotate(405deg);
}
}
.ant-spin-rtl {
direction: rtl;
}
.ant-spin-rtl .ant-spin-dot-spin {
transform: rotate(-45deg);
animation-name: antRotateRtl;
}
@keyframes antRotateRtl {
to {
transform: rotate(-405deg);
}
}
</style>