1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <template>
- <div class="icon-container" :style="containerStyle">
- <slot class="icon"></slot>
- </div>
- </template>
- <script>
- export default {
- name: 'wscn-icon-stack',
- props: {
- width: {
- type: Number,
- default: 20
- },
- shape: {
- type: String,
- default: 'circle',
- validator: val => {
- const validShapes = ['circle', 'square']
- return validShapes.indexOf(val) > -1
- }
- }
- },
- computed: {
- containerStyle() {
- return {
- width: `${this.width}px`,
- height: `${this.width}px`,
- fontSize: `${this.width * 0.6}px`,
- borderRadius: `${this.shape === 'circle' && '50%'}`
- }
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .icon-container {
- display: inline-block;
- position: relative;
- overflow: hidden;
- background: #1482F0;
- .icon {
- position: absolute;
- color: #ffffff;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- }
- }
- </style>
|