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 @@
+
+
+
+ {{ title }}
+ {{ count }}
+
+
+
+
+
+
+ - {{ showLabel(item) }}
+
+
{{ notFoundText }}
+
+
+
+
+
+
+
\ 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 @@
+
+
+
+ {{ operations[0] }}
+
+
+ {{ operations[1] }}
+
+
+
+
\ 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