zoukankan      html  css  js  c++  java
  • element alert源码

    <template>
      <transition name="el-alert-fade">
        <div
          class="el-alert"
          :class="[typeClass, center ? 'is-center' : '', 'is-' + effect]"
          v-show="visible"
          role="alert"
        >
          <i class="el-alert__icon" :class="[ iconClass, isBigIcon ]" v-if="showIcon"></i>
          <div class="el-alert__content">
            <span class="el-alert__title" :class="[ isBoldTitle ]" v-if="title || $slots.title">
              <slot name="title">{{ title }}</slot>
            </span>
            <p class="el-alert__description" v-if="$slots.default && !description"><slot></slot></p>
            <p class="el-alert__description" v-if="description && !$slots.default">{{ description }}</p>
            <i class="el-alert__closebtn" :class="{ 'is-customed': closeText !== '', 'el-icon-close': closeText === '' }" v-show="closable" @click="close()">{{closeText}}</i>
          </div>
        </div>
      </transition>
    </template>
    
    <script type="text/babel">
      const TYPE_CLASSES_MAP = {
        'success': 'el-icon-success',
        'warning': 'el-icon-warning',
        'error': 'el-icon-error'
      };
      export default {
        name: 'ElAlert',
    
        props: {
          title: {
            type: String,
            default: ''
          },
          description: {
            type: String,
            default: ''
          },
          type: {
            type: String,
            default: 'info'
          },
          closable: {
            type: Boolean,
            default: true
          },
          closeText: {
            type: String,
            default: ''
          },
          showIcon: Boolean,
          center: Boolean,
          effect: {
            type: String,
            default: 'light',
            validator: function(value) {
              return ['light', 'dark'].indexOf(value) !== -1;
            }
          }
        },
    
        data() {
          return {
            visible: true
          };
        },
    
        methods: {
          close() {
            this.visible = false;
            this.$emit('close');
          }
        },
    
        computed: {
          typeClass() {
            return `el-alert--${ this.type }`;
          },
    
          iconClass() {
            return TYPE_CLASSES_MAP[this.type] || 'el-icon-info';
          },
    
          isBigIcon() {
            return this.description || this.$slots.default ? 'is-big' : '';
          },
    
          isBoldTitle() {
            return this.description || this.$slots.default ? 'is-bold' : '';
          }
        }
      };
    </script>
  • 相关阅读:
    作业6 团队项目之需求(改)
    作业6第一天进度
    作业6第二天进度
    作业6四则运算APP之Sprint计划
    作业6第3、4、5天进度
    重新梳理Python基础(7)
    BAE博客开发之基础知识积累Django篇(1)
    重新梳理Python基础(11)
    重新梳理Python基础(6)
    重新梳理Python基础(9)
  • 原文地址:https://www.cnblogs.com/wsk1576025821/p/10912899.html
Copyright © 2011-2022 走看看