diff --git a/assets/iview.png b/assets/iview.png index b8f5bf0..f18bbb5 100644 Binary files a/assets/iview.png and b/assets/iview.png differ diff --git a/src/components/button/button.vue b/src/components/button/button.vue index 896433a..f85a965 100644 --- a/src/components/button/button.vue +++ b/src/components/button/button.vue @@ -71,7 +71,7 @@ } }, ready () { - this.showSlot = this.$els.slot.innerHTML !== ''; + this.showSlot = this.$els.slot.innerHTML.replace(/\n/g, '').replace(//gmi, '') !== ''; } } diff --git a/src/components/transfer/index.js b/src/components/transfer/index.js new file mode 100644 index 0000000..85a6ab8 --- /dev/null +++ b/src/components/transfer/index.js @@ -0,0 +1,2 @@ +import Transfer from './transfer.vue'; +export default Transfer; \ No newline at end of file diff --git a/src/components/transfer/list.vue b/src/components/transfer/list.vue new file mode 100644 index 0000000..17cb3ce --- /dev/null +++ b/src/components/transfer/list.vue @@ -0,0 +1,108 @@ + + \ No newline at end of file diff --git a/src/components/transfer/operation.vue b/src/components/transfer/operation.vue new file mode 100644 index 0000000..0734f92 --- /dev/null +++ b/src/components/transfer/operation.vue @@ -0,0 +1,31 @@ + + \ No newline at end of file diff --git a/src/components/transfer/search.vue b/src/components/transfer/search.vue new file mode 100644 index 0000000..544e413 --- /dev/null +++ b/src/components/transfer/search.vue @@ -0,0 +1,32 @@ + + \ No newline at end of file diff --git a/src/components/transfer/transfer.vue b/src/components/transfer/transfer.vue new file mode 100644 index 0000000..9ff7b48 --- /dev/null +++ b/src/components/transfer/transfer.vue @@ -0,0 +1,186 @@ + + \ No newline at end of file diff --git a/src/index.js b/src/index.js index a3742f7..0badbd7 100644 --- a/src/index.js +++ b/src/index.js @@ -27,6 +27,7 @@ import Switch from './components/switch'; import Tag from './components/tag'; import Timeline from './components/timeline'; import Tooltip from './components/tooltip'; +import Transfer from './components/transfer'; import { Row, Col } from './components/layout'; import { Select, Option, OptionGroup } from './components/select'; @@ -71,7 +72,8 @@ const iview = { Tag, Timeline, TimelineItem: Timeline.Item, - Tooltip + Tooltip, + Transfer }; const install = function (Vue) { diff --git a/src/styles/components/index.less b/src/styles/components/index.less index 168358b..8a8b2ab 100644 --- a/src/styles/components/index.less +++ b/src/styles/components/index.less @@ -26,4 +26,5 @@ @import "poptip"; @import "input"; @import "slider"; -@import "cascader"; \ No newline at end of file +@import "cascader"; +@import "transfer"; \ No newline at end of file diff --git a/src/styles/components/input.less b/src/styles/components/input.less index 70c1f51..ebc5147 100644 --- a/src/styles/components/input.less +++ b/src/styles/components/input.less @@ -19,6 +19,10 @@ z-index: 1; } + &-icon + &{ + padding-right: 32px; + } + &-wrapper-large &-icon{ font-size: 18px; height: @input-height-large; @@ -29,10 +33,10 @@ font-size: 14px; height: @input-height-small; line-height: @input-height-small; - } - &-icon + &{ - padding-right: 32px; + + .@{input-prefix-cls} { + padding-right: 24px; + } } } diff --git a/src/styles/components/transfer.less b/src/styles/components/transfer.less new file mode 100644 index 0000000..7921b40 --- /dev/null +++ b/src/styles/components/transfer.less @@ -0,0 +1,89 @@ +@transfer-prefix-cls: ~"@{css-prefix}transfer"; +@transfer-item-prefix-cls: ~"@{css-prefix}transfer-list-content-item"; + +.@{transfer-prefix-cls} { + position: relative; + line-height: @line-height-base; + + &-list{ + display: inline-block; + width: 180px; + height: 210px; + font-size: @font-size-small; + vertical-align: middle; + border: 1px solid @border-color-base; + border-radius: @border-radius-base; + position: relative; + padding-top: 35px; + + &-header { + padding: 8px 16px; + border-radius: @border-radius-base @border-radius-base 0 0; + background: #fff; + color: @text-color; + border-bottom: 1px solid @border-color-split; + overflow: hidden; + position: absolute; + top: 0; + left: 0; + width: 100%; + + &-count { + margin: 0 !important; + float: right; + } + } + + &-body{ + height: 100%; + position: relative; + + &-with-search{ + padding-top: 40px; + } + } + + &-content{ + height: 100%; + padding: 4px 0; + overflow: auto; + + &-item{ + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + } + &-body-with-search &-content{ + padding: 0; + } + + &-body-search-wrapper{ + padding: 8px; + position: absolute; + top: 0; + left: 0; + right: 0; + } + + &-search{ + position: relative; + } + } + &-operation { + display: inline-block; + overflow: hidden; + margin: 0 16px; + vertical-align: middle; + + .@{btn-prefix-cls} { + display: block; + min-width: @btn-circle-size-small; + + &:first-child { + margin-bottom: 12px; + } + } + } +} +.select-item(@transfer-prefix-cls, @transfer-item-prefix-cls); \ No newline at end of file diff --git a/src/styles/mixins/checkbox.less b/src/styles/mixins/checkbox.less index 58b7ce9..728acb3 100644 --- a/src/styles/mixins/checkbox.less +++ b/src/styles/mixins/checkbox.less @@ -11,6 +11,10 @@ line-height: 1; position: relative; + &-disabled{ + cursor: @cursor-disabled; + } + &:hover { .@{checkbox-inner-prefix-cls} { border-color: #bcbcbc; @@ -56,6 +60,10 @@ z-index: 1; cursor: pointer; opacity: 0; + + &[disabled]{ + cursor: @cursor-disabled; + } } } @@ -141,6 +149,9 @@ & + & { margin-left: 8px; } + &-disabled{ + cursor: @cursor-disabled; + } } .@{checkbox-prefix-cls}-wrapper + span, diff --git a/test/app.vue b/test/app.vue index 5e5f2e5..6f47430 100644 --- a/test/app.vue +++ b/test/app.vue @@ -42,6 +42,7 @@ li + li {
  • Tag
  • Input
  • Cascader
  • +
  • Transfer
  • diff --git a/test/main.js b/test/main.js index db8f6d8..241e4d5 100644 --- a/test/main.js +++ b/test/main.js @@ -97,6 +97,11 @@ router.map({ component: function (resolve) { require(['./routers/cascader.vue'], resolve); } + }, + '/transfer': { + component: function (resolve) { + require(['./routers/transfer.vue'], resolve); + } } }); diff --git a/test/routers/transfer.vue b/test/routers/transfer.vue new file mode 100644 index 0000000..8d4c73b --- /dev/null +++ b/test/routers/transfer.vue @@ -0,0 +1,41 @@ + + + \ No newline at end of file -- libgit2 0.21.4