<template> <div :class="b([type, colorType])" :style="style"> <span :class="b('spinner', type)"> <i v-for="(item, index) in (type === 'spinner' ? 12 : 0)" :key="index" /> <svg v-if="type === 'circular'" :class="b('circular')" viewBox="25 25 50 50"> <circle cx="50" cy="50" r="20" fill="none"/> </svg> </span> </div> </template> <script> import create from '../utils/create-basic'; const DEFAULT_COLOR = '#c9c9c9'; export default create({ name: 'loading', props: { size: String, type: { type: String, default: 'circular' }, color: { type: String, default: DEFAULT_COLOR } }, computed: { colorType() { const { color } = this; return color === 'white' || color === 'black' ? color : ''; }, style() { return { color: this.color === 'black' ? DEFAULT_COLOR : this.color, width: this.size, height: this.size }; } } }); </script>