add Card component
add Card component
This commit is contained in:
parent
49306c7a7f
commit
15bae14479
10 changed files with 163 additions and 21 deletions
58
components/card/card.vue
Normal file
58
components/card/card.vue
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<template>
|
||||||
|
<div :class="classes">
|
||||||
|
<div :class="headClasses" v-if="showHead" v-el:head><slot name="title"></slot></div>
|
||||||
|
<div :class="extraClasses" v-if="showExtra" v-el:extra><slot name="extra"></slot></div>
|
||||||
|
<div :class="bodyClasses"><slot></slot></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
const prefixCls = 'ivu-card';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
bordered: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
},
|
||||||
|
disHover: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
shadow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
showHead: true,
|
||||||
|
showExtra: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
classes () {
|
||||||
|
return [
|
||||||
|
`${prefixCls}`,
|
||||||
|
{
|
||||||
|
[`${prefixCls}-bordered`]: this.bordered && !this.shadow,
|
||||||
|
[`${prefixCls}-dis-hover`]: this.disHover || this.shadow,
|
||||||
|
[`${prefixCls}-shadow`]: this.shadow
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
headClasses () {
|
||||||
|
return `${prefixCls}-head`;
|
||||||
|
},
|
||||||
|
extraClasses () {
|
||||||
|
return `${prefixCls}-extra`;
|
||||||
|
},
|
||||||
|
bodyClasses () {
|
||||||
|
return `${prefixCls}-body`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
compiled () {
|
||||||
|
this.showHead = this.$els.head.innerHTML != '';
|
||||||
|
this.showExtra = this.$els.extra.innerHTML != '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
2
components/card/index.js
Normal file
2
components/card/index.js
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Card from './card.vue';
|
||||||
|
export default Card;
|
2
dist/styles/iview.all.css
vendored
2
dist/styles/iview.all.css
vendored
File diff suppressed because one or more lines are too long
2
dist/styles/iview.css
vendored
2
dist/styles/iview.css
vendored
File diff suppressed because one or more lines are too long
4
index.js
4
index.js
|
@ -19,6 +19,7 @@ import Steps from './components/steps';
|
||||||
import Breadcrumb from './components/breadcrumb';
|
import Breadcrumb from './components/breadcrumb';
|
||||||
import Alert from './components/alert';
|
import Alert from './components/alert';
|
||||||
import Collapse from './components/collapse';
|
import Collapse from './components/collapse';
|
||||||
|
import Card from './components/card';
|
||||||
|
|
||||||
const iview = {
|
const iview = {
|
||||||
Button,
|
Button,
|
||||||
|
@ -42,7 +43,8 @@ const iview = {
|
||||||
Steps,
|
Steps,
|
||||||
Breadcrumb,
|
Breadcrumb,
|
||||||
Alert,
|
Alert,
|
||||||
Collapse
|
Collapse,
|
||||||
|
Card
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = iview;
|
module.exports = iview;
|
|
@ -1,20 +1,24 @@
|
||||||
<template>
|
<template>
|
||||||
<Row>
|
<Card :bordered="true" style="width:300px">
|
||||||
<i-col span="4">
|
<template slot="title">
|
||||||
我在左边
|
<p>放寒假的发货会计师</p>
|
||||||
</i-col>
|
</template>
|
||||||
<i-col span="20">
|
<a href="#" slot="extra">More</a>
|
||||||
我在右边
|
</Card>
|
||||||
</i-col>
|
<Card style="width:300px">
|
||||||
</Row>
|
<p>hello</p>
|
||||||
|
<p>hndshf</p>
|
||||||
|
<h3>jfds</h3>
|
||||||
|
</Card>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Row, Col } from 'iview';
|
import { Row, Col, Card } from 'iview';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Row,
|
Row,
|
||||||
iCol: Col
|
iCol: Col,
|
||||||
|
Card
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "iview",
|
"name": "iview",
|
||||||
"version": "0.0.5",
|
"version": "0.0.6",
|
||||||
"title": "iView",
|
"title": "iView",
|
||||||
"description": "An UI components Library with Vue.js",
|
"description": "An UI components Library with Vue.js",
|
||||||
"homepage": "http://www.iviewui.com",
|
"homepage": "http://www.iviewui.com",
|
||||||
|
|
64
styles/components/card.less
Normal file
64
styles/components/card.less
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
@card-prefix-cls: ~"@{css-prefix}card";
|
||||||
|
|
||||||
|
.@{card-prefix-cls}{
|
||||||
|
background: #fff;
|
||||||
|
border-radius: @border-radius-small;
|
||||||
|
font-size: @font-size-base;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
transition: all @transition-time @ease-in-out;
|
||||||
|
|
||||||
|
&-bordered {
|
||||||
|
border: 1px solid @border-color-base;
|
||||||
|
border-color: @border-color-split;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-shadow{
|
||||||
|
box-shadow: @shadow-card;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
box-shadow: @shadow-base;
|
||||||
|
border-color: #eee;
|
||||||
|
}
|
||||||
|
&&-dis-hover:hover{
|
||||||
|
box-shadow: none;
|
||||||
|
border-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
&&-dis-hover&-bordered:hover{
|
||||||
|
border-color: @border-color-split;
|
||||||
|
}
|
||||||
|
|
||||||
|
&&-shadow:hover{
|
||||||
|
box-shadow: @shadow-card;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-head {
|
||||||
|
border-bottom: 1px solid @border-color-split;
|
||||||
|
padding: 10px 16px;
|
||||||
|
line-height: 1;
|
||||||
|
|
||||||
|
p {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&-extra {
|
||||||
|
position: absolute;
|
||||||
|
right: 16px;
|
||||||
|
top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-body {
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,4 +5,5 @@
|
||||||
@import "circle";
|
@import "circle";
|
||||||
@import "spin";
|
@import "spin";
|
||||||
@import "alert";
|
@import "alert";
|
||||||
@import "collapse";
|
@import "collapse";
|
||||||
|
@import "card";
|
|
@ -13,12 +13,6 @@
|
||||||
|
|
||||||
// Base
|
// Base
|
||||||
@body-background : #fff;
|
@body-background : #fff;
|
||||||
|
|
||||||
// Border color
|
|
||||||
@border-color-base : #d9d9d9; // base
|
|
||||||
// Background color
|
|
||||||
@background-color-base : #f7f7f7; // base
|
|
||||||
|
|
||||||
@font-family : "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
|
@font-family : "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
|
||||||
@code-family : Consolas,Menlo,Courier,monospace;
|
@code-family : Consolas,Menlo,Courier,monospace;
|
||||||
@text-color : #525558;
|
@text-color : #525558;
|
||||||
|
@ -26,6 +20,23 @@
|
||||||
@line-height-base : 1.5;
|
@line-height-base : 1.5;
|
||||||
@line-height-computed : floor((@font-size-base * @line-height-base));
|
@line-height-computed : floor((@font-size-base * @line-height-base));
|
||||||
@border-radius-base : 6px;
|
@border-radius-base : 6px;
|
||||||
|
@border-radius-small : 4px;
|
||||||
|
|
||||||
|
// Border color
|
||||||
|
@border-color-base : #d9d9d9; // outside
|
||||||
|
@border-color-split : #e9e9e9; // inside
|
||||||
|
|
||||||
|
// Background color
|
||||||
|
@background-color-base : #f7f7f7; // base
|
||||||
|
|
||||||
|
// Shadow
|
||||||
|
@shadow-color : rgba(100, 100, 100, .2);
|
||||||
|
@shadow-base : @shadow-down;
|
||||||
|
@shadow-card : 0 1px 1px 0 rgba(0,0,0,.1);
|
||||||
|
@shadow-up : 0 -1px 6px @shadow-color;
|
||||||
|
@shadow-down : 0 1px 6px @shadow-color;
|
||||||
|
@shadow-left : -1px 0 6px @shadow-color;
|
||||||
|
@shadow-right : 1px 0 6px @shadow-color;
|
||||||
|
|
||||||
// Layout and Grid
|
// Layout and Grid
|
||||||
@grid-columns : 24;
|
@grid-columns : 24;
|
||||||
|
|
Loading…
Add table
Reference in a new issue