94 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | |
|   <button
 | |
|     class="cc-button"
 | |
|     @click="handleClick"
 | |
|     :disabled="buttonDisabled"
 | |
|     :class="[
 | |
|       type ? 'cc-button--' + type : '',
 | |
|       buttonSize ? 'cc-button--' + buttonSize : '',
 | |
|       {
 | |
|         'is-disabled': buttonDisabled,
 | |
|         'is-plain': plain
 | |
|       }
 | |
|     ]"
 | |
|   >
 | |
|     <span><slot></slot></span>
 | |
|   </button>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| export default {
 | |
|   name: 'CcButton',
 | |
|   props: {
 | |
|     type: {
 | |
|       type: String,
 | |
|       default: 'default'
 | |
|     },
 | |
|     size: {
 | |
|       type: String,
 | |
|       default: ''
 | |
|     },
 | |
|     disabled: {
 | |
|       type: Boolean,
 | |
|       default: false
 | |
|     },
 | |
|     plain: {
 | |
|       type: Boolean,
 | |
|       default: false
 | |
|     }
 | |
|   },
 | |
|   computed: {
 | |
|     buttonSize() {
 | |
|       return this.size
 | |
|     },
 | |
|     buttonDisabled() {
 | |
|       return this.disabled
 | |
|     }
 | |
|   },
 | |
|   methods: {
 | |
|     handleClick(evt) {
 | |
|       this.$emit('click', evt)
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style lang="scss" scoped>
 | |
| .cc-button {
 | |
|   display: inline-block;
 | |
|   line-height: 1;
 | |
|   white-space: nowrap;
 | |
|   cursor: pointer;
 | |
|   background: #fff;
 | |
|   border: 1px solid #dcdfe6;
 | |
|   color: #606266;
 | |
|   -webkit-appearance: none;
 | |
|   text-align: center;
 | |
|   -webkit-box-sizing: border-box;
 | |
|   box-sizing: border-box;
 | |
|   outline: 0;
 | |
|   margin: 0;
 | |
|   -webkit-transition: .1s;
 | |
|   transition: .1s;
 | |
|   font-weight: 500;
 | |
|   padding: 12px 20px;
 | |
|   font-size: 14px;
 | |
|   border-radius: 4px;
 | |
| }
 | |
| 
 | |
| .cc-button:focus, .cc-button:hover {
 | |
|   color: #409eff;
 | |
|   border-color: #c6e2ff;
 | |
|   background-color: #ecf5ff;
 | |
| }
 | |
| 
 | |
| .cc-button--mini, .cc-button--mini.is-round {
 | |
|   padding: 7px 15px;
 | |
| }
 | |
| 
 | |
| .cc-button--mini, .cc-button--small {
 | |
|   font-size: 12px;
 | |
|   border-radius: 3px;
 | |
| }
 | |
| </style>
 |