Merge pull request #213 from Leopoldthecoder/master

turn button/icon to functional
pull/215/head^2
baiyaaaaa 2016-10-02 22:55:26 +08:00 committed by GitHub
commit 74c7513f04
7 changed files with 107 additions and 84 deletions

View File

@ -0,0 +1,22 @@
/**
* button
* @module components/basic/menu
* @desc 用于按钮组
* @param {string} label - 名称
*/
export default {
name: 'ElButtonGroup',
functional: true,
render(h, { slots, data }) {
return (
<div
class="el-button-group"
{ ...data }
{ ...{ on: data.nativeOn } }>
{ slots().default }
</div>
);
}
};

View File

@ -1,16 +0,0 @@
<template>
<div class="el-button-group">
<slot></slot>
</div>
</template>
<script>
/**
* button
* @module components/basic/menu
* @desc 用于按钮组
* @param {string} label - 名称
*/
export default {
name: 'ElButtonGroup'
};
</script>

View File

@ -0,0 +1,65 @@
export default {
name: 'ElButton',
functional: true,
props: {
type: {
type: String,
default: 'default'
},
size: String,
icon: {
type: String,
default: ''
},
nativeType: {
type: String,
default: 'button'
},
loading: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
},
plain: {
type: Boolean,
default: false
}
},
render(h, { props, slots, data }) {
return (
<button
disabled={ props.disabled }
type={ props.nativeType }
class={[
'el-button',
props.type ? 'el-button-' + props.type : '',
props.size ? 'el-button-' + props.size : '',
{
'is-disabled': props.disabled,
'is-loading': props.loading,
'is-plain': props.plain
}
]}
{ ...data }
{ ...{ on: data.nativeOn } }>
{
[
props.loading
? <i class="el-icon-loading"></i>
: {},
props.icon && !props.loading
? <i class={ 'el-icon-' + props.icon }></i>
: {}
]
}
{ slots().default }
</button>
);
}
};

View File

@ -1,54 +0,0 @@
<template>
<button :disabled="disabled" class="el-button"
:type="nativeType"
:class="[
type ? 'el-button-' + type : '',
size ? 'el-button-' + size : '',
{
'is-disabled': disabled,
'is-loading': loading,
'is-plain': plain
}
]"
>
<i class="el-icon-loading" v-if="loading"></i>
<i :class="'el-icon-' + icon" v-if="icon && !loading"></i>
<slot></slot>
</button>
</template>
<script>
/**
* button
*/
export default {
name: 'ElButton',
props: {
type: {
type: String,
default: 'default'
},
size: String,
icon: {
type: String,
default: ''
},
nativeType: {
type: String,
default: 'button'
},
loading: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
},
plain: {
type: Boolean,
default: false
}
}
};
</script>

View File

@ -1 +1 @@
module.exports = require('./src/icon.vue');
module.exports = require('./src/icon');

19
packages/icon/src/icon.js Normal file
View File

@ -0,0 +1,19 @@
export default {
name: 'ElIcon',
functional: true,
props: {
name: String
},
render(h, { props, data }) {
return (
<i
class={ 'el-icon' + props.name }
{ ...data }
{ ...{ on: data.nativeOn } }>
</i>
);
}
};

View File

@ -1,13 +0,0 @@
<template>
<i :class="'el-icon-' + name"></i>
</template>
<script>
export default {
name: 'ElIcon',
props: {
name: String
}
};
</script>