Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Element
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
林焕东
Element
Commits
383c6096
Commit
383c6096
authored
Aug 17, 2016
by
FuryBean
Committed by
GitHub
Aug 17, 2016
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #74 from eleme/feat/input-group
update input && input-group
parents
145cb4db
80ae8286
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
102 additions
and
170 deletions
+102
-170
components.json
components.json
+0
-3
examples/docs/input.md
examples/docs/input.md
+33
-67
packages/input-group/index.js
packages/input-group/index.js
+0
-7
packages/input/index.js
packages/input/index.js
+0
-2
packages/input/src/input-group.vue
packages/input/src/input-group.vue
+0
-20
packages/input/src/input.vue
packages/input/src/input.vue
+15
-3
packages/theme-default/src/common/var.css
packages/theme-default/src/common/var.css
+1
-1
packages/theme-default/src/input-recommend.css
packages/theme-default/src/input-recommend.css
+0
-29
packages/theme-default/src/input.css
packages/theme-default/src/input.css
+46
-34
src/index.js
src/index.js
+7
-4
No files found.
components.json
View file @
383c6096
...
@@ -32,9 +32,6 @@
...
@@ -32,9 +32,6 @@
"input-number"
:
[
"input-number"
:
[
"./packages/input-number/index.js"
"./packages/input-number/index.js"
],
],
"input-group"
:
[
"./packages/input-group/index.js"
],
"radio"
:
[
"radio"
:
[
"./packages/radio/index.js"
"./packages/radio/index.js"
],
],
...
...
examples/docs/input.md
View file @
383c6096
...
@@ -9,7 +9,8 @@
...
@@ -9,7 +9,8 @@
input4: '',
input4: '',
input5: '',
input5: '',
input6: '',
input6: '',
textarea: ''
textarea: '',
select: ''
};
};
}
}
};
};
...
@@ -28,6 +29,9 @@
...
@@ -28,6 +29,9 @@
.el-textarea {
.el-textarea {
width: 414px;
width: 414px;
}
}
.el-input-group {
min-width: 260px;
}
.el-input-group + .el-input-group {
.el-input-group + .el-input-group {
margin-top: 15px;
margin-top: 15px;
}
}
...
@@ -82,22 +86,6 @@
...
@@ -82,22 +86,6 @@
</el-input>
</el-input>
```
```
<!-- ## readonly 状态
<el-input
:readonly="true"
placeholder="请输入内容"
:value.sync="input1">
</el-input>
```
html
<el-input
:readonly=
"true"
placeholder=
"请输入内容"
:value.sync=
"input1"
>
</el-input>
```
-->
## Input 图标
## Input 图标
<div
class=
"demo-box demo-input"
>
<div
class=
"demo-box demo-input"
>
...
@@ -118,76 +106,54 @@
...
@@ -118,76 +106,54 @@
## Input Group
## Input Group
前置和后置元素可以是任何东西, 通过使用
`.el-input-group__label`
可以声明附加元素是一个标签从而获得合适的样式。
### 后置元素
### 后置元素
<div
class=
"demo-box demo-input"
>
<div
class=
"demo-box demo-input"
>
<el-input-group>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
>
<el-input
<template
slot=
"append"
>
.com
</template>
placeholder="请输入内容"
</el-input>
:value.sync="input2">
</el-input>
<span
class=
"el-input-group__label"
slot=
"append"
>
.com
</span>
</el-input-group>
</div>
</div>
```
html
```
html
<el-input-group>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
>
<el-input
<template
slot=
"append"
>
.com
</template>
placeholder=
"请输入内容"
</el-input>
:value.sync=
"input2"
>
</el-input>
<span
class=
"el-input-group__label"
slot=
"append"
>
.com
</span>
</el-input-group>
```
```
### 前置元素
### 前置元素
<div
class=
"demo-box demo-input"
>
<div
class=
"demo-box demo-input"
>
<el-input-group>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
>
<el-button
slot=
"prepend"
type=
"text"
>
按钮
</el-button>
<template
slot=
"prepend"
>
Http://
</template>
<el-input
</el-input>
placeholder="请输入内容"
:value.sync="input2">
</el-input>
</el-input-group>
</div>
</div>
```
html
```
html
<el-input-group>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
>
<el-button
slot=
"prepend"
type=
"text"
>
按钮
</el-button>
<template
slot=
"prepend"
>
Http://
</template>
<el-input
</el-input>
placeholder=
"请输入内容"
:value.sync=
"input2"
>
</el-input>
</el-input-group>
```
```
### 前置和后置元素
### 前置和后置元素
<div
class=
"demo-box demo-input"
>
<div
class=
"demo-box demo-input"
>
<el-input-group>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
style=
"width: 300px;"
>
<el-dropdown
text=
"下拉菜单"
type=
"text"
:icon-separate=
"false"
slot=
"prepend"
>
<el-select
v-model=
"select"
slot=
"prepend"
:width=
"100"
>
<li>
选项一
</li>
<el-option
label=
"餐厅名"
value=
"1"
></el-option>
<li>
选项二
</li>
<el-option
label=
"订单号"
value=
"2"
></el-option>
<li>
选项三
</li>
<el-option
label=
"用户电话"
value=
"3"
></el-option>
<li
class=
"divider"
>
选项四
</li>
</el-select>
</el-dropdown>
<el-button
slot=
"append"
icon=
"search"
></el-button>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
></el-input>
</el-input>
<el-button
type=
"text"
slot=
"append"
>
搜索
</el-button>
</el-input-group>
</div>
</div>
```
html
```
html
<el-input-group>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
style=
"width: 300px;"
>
<el-dropdown
text=
"下拉菜单"
type=
"text"
:icon-separate=
"false"
slot=
"prepend"
>
<el-select
v-model=
"select"
slot=
"prepend"
:width=
"100"
>
<li>
选项一
</li>
<el-option
label=
"餐厅名"
value=
"1"
></el-option>
<li>
选项二
</li>
<el-option
label=
"订单号"
value=
"2"
></el-option>
<li>
选项三
</li>
<el-option
label=
"用户电话"
value=
"3"
></el-option>
<li
class=
"divider"
>
选项四
</li>
</el-select>
</el-dropdown>
<el-button
slot=
"append"
icon=
"search"
></el-button>
<el-input
placeholder=
"请输入内容"
:value.sync=
"input2"
></el-input>
</el-input>
<el-button
type=
"text"
slot=
"append"
>
搜索
</el-button>
</el-input-group>
```
```
## 尺寸
## 尺寸
...
...
packages/input-group/index.js
deleted
100644 → 0
View file @
145cb4db
const
ElInputGroup
=
require
(
'
../input/src/input-group
'
);
ElInputGroup
.
install
=
function
(
Vue
)
{
Vue
.
component
(
ElInputGroup
.
name
,
ElInputGroup
);
};
module
.
exports
=
ElInputGroup
;
packages/input/index.js
View file @
383c6096
const
ElInput
=
require
(
'
./src/input
'
);
const
ElInput
=
require
(
'
./src/input
'
);
const
ElInputGroup
=
require
(
'
./src/input-group
'
);
ElInput
.
install
=
function
(
Vue
)
{
ElInput
.
install
=
function
(
Vue
)
{
Vue
.
component
(
ElInput
.
name
,
ElInput
);
Vue
.
component
(
ElInput
.
name
,
ElInput
);
Vue
.
component
(
ElInputGroup
.
name
,
ElInputGroup
);
};
};
module
.
exports
=
ElInput
;
module
.
exports
=
ElInput
;
packages/input/src/input-group.vue
deleted
100644 → 0
View file @
145cb4db
<
template
>
<div
class=
"el-input-group"
>
<div
class=
"el-input-group__prepend"
v-if=
"_slotContents.prepend"
>
<slot
name=
"prepend"
></slot>
</div>
<slot></slot>
<div
class=
"el-input-group__append"
v-if=
"_slotContents.append"
>
<slot
name=
"append"
></slot>
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
'
ElInputGroup
'
,
data
()
{
return
{
};
}
};
</
script
>
packages/input/src/input.vue
View file @
383c6096
...
@@ -2,11 +2,16 @@
...
@@ -2,11 +2,16 @@
<div
:class=
"[
<div
:class=
"[
type === 'textarea' ? 'el-textarea' : 'el-input',
type === 'textarea' ? 'el-textarea' : 'el-input',
size ? 'el-input-' + size : '',
size ? 'el-input-' + size : '',
{'is-disabled': disabled}
{
'is-disabled': disabled,
'el-input-group': $slots.prepend || $slots.append
}
]">
]">
<template
v-if=
"type !== 'textarea'"
>
<template
v-if=
"type !== 'textarea'"
>
<i
class=
"el-input__icon"
:class=
"[icon ? 'el-icon-' + icon : '']"
v-if=
"icon"
></i>
<!-- 前置元素 -->
<i
class=
"el-input__icon el-icon-loading"
v-if=
"validating"
></i>
<div
class=
"el-input-group__prepend"
v-if=
"$slots.prepend"
>
<slot
name=
"prepend"
></slot>
</div>
<input
<input
:type=
"type"
:type=
"type"
:name=
"name"
:name=
"name"
...
@@ -23,6 +28,13 @@
...
@@ -23,6 +28,13 @@
:autocomplete=
"autoComplete"
:autocomplete=
"autoComplete"
ref=
"input"
ref=
"input"
>
>
<!-- input 图标 -->
<i
class=
"el-input__icon"
:class=
"[icon ? 'el-icon-' + icon : '']"
v-if=
"icon"
></i>
<i
class=
"el-input__icon el-icon-loading"
v-if=
"validating"
></i>
<!-- 后置元素 -->
<div
class=
"el-input-group__append"
v-if=
"$slots.append"
>
<slot
name=
"append"
></slot>
</div>
</
template
>
</
template
>
<!-- 写成垂直的方式会导致 placeholder 失效, 蜜汁bug -->
<!-- 写成垂直的方式会导致 placeholder 失效, 蜜汁bug -->
<textarea
v-else
v-model=
"currentValue"
class=
"el-textarea__inner"
:name=
"name"
:placeholder=
"placeholder"
:disabled=
"disabled"
:readonly=
"readonly"
@
focus=
"$emit('onfocus', val)"
@
blur=
"handleBlur"
></textarea>
<textarea
v-else
v-model=
"currentValue"
class=
"el-textarea__inner"
:name=
"name"
:placeholder=
"placeholder"
:disabled=
"disabled"
:readonly=
"readonly"
@
focus=
"$emit('onfocus', val)"
@
blur=
"handleBlur"
></textarea>
...
...
packages/theme-default/src/common/var.css
View file @
383c6096
...
@@ -151,7 +151,7 @@
...
@@ -151,7 +151,7 @@
--input-large-height
:
42px
;
--input-large-height
:
42px
;
--input-small-font-size
:
13px
;
--input-small-font-size
:
13px
;
--input-small-height
:
28
px
;
--input-small-height
:
30
px
;
--input-mini-font-size
:
12px
;
--input-mini-font-size
:
12px
;
--input-mini-height
:
22px
;
--input-mini-height
:
22px
;
...
...
packages/theme-default/src/input-recommend.css
deleted
100644 → 0
View file @
145cb4db
@charset
"UTF-8"
;
@import
"./common/var.css"
;
/*@import "./core/dropdown.css";*/
@import
"./core/tag.css"
;
@import
"./core/input.css"
;
@component-namespace
element
{
@b
input
{
display
:
inline-block
;
font-size
:
var
(
--input-font-size
);
position
:
relative
;
@e
placeholder
{
background-color
:
#fff
;
color
:
var
(
--input-border-color
);
left
:
4px
;
padding
:
0
2px
;
position
:
absolute
;
top
:
calc
(
var
(
--input-height
)
/
2
-
var
(
--input-font-size
)
+
4
);
transition
:
all
0.2s
ease-out
;
z-index
:
var
(
--index-normal
);
@when
enter
{
color
:
var
(
--input-border-color-hover
);
top
:
calc
((
-var
(
--input-height
)
+
var
(
--input-font-size
))
/
2
+
1
);
}
}
}
}
packages/theme-default/src/input.css
View file @
383c6096
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
@component-namespace
el
{
@component-namespace
el
{
@b
input
{
@b
input
{
position
:
relative
;
position
:
relative
;
font-size
:
var
(
--font-size-base
);
@e
inner
{
@e
inner
{
display
:
block
;
display
:
block
;
...
@@ -11,7 +12,6 @@
...
@@ -11,7 +12,6 @@
box-sizing
:
border-box
;
box-sizing
:
border-box
;
width
:
100%
;
width
:
100%
;
height
:
var
(
--input-height
);
height
:
var
(
--input-height
);
font-size
:
var
(
--font-size-base
);
color
:
var
(
--input-color
);
color
:
var
(
--input-color
);
background-color
:
#fff
;
background-color
:
#fff
;
background-image
:
none
;
background-image
:
none
;
...
@@ -71,75 +71,87 @@
...
@@ -71,75 +71,87 @@
}
}
@b
input-large
{
@b
input-large
{
font-size
:
var
(
--input-large-font-size
);
&
.el-input__inner
{
&
.el-input__inner
{
font-size
:
var
(
--input-large-font-size
);
height
:
var
(
--input-large-height
);
height
:
var
(
--input-large-height
);
}
}
}
}
@b
input-small
{
@b
input-small
{
font-size
:
var
(
--input-small-font-size
);
&
.el-input__inner
{
&
.el-input__inner
{
font-size
:
var
(
--input-small-font-size
);
height
:
var
(
--input-small-height
);
height
:
var
(
--input-small-height
);
}
}
}
}
@b
input-mini
{
@b
input-mini
{
font-size
:
var
(
--input-mini-font-size
);
&
.el-input__inner
{
&
.el-input__inner
{
font-size
:
var
(
--input-mini-font-size
);
height
:
var
(
--input-mini-height
);
height
:
var
(
--input-mini-height
);
}
}
}
}
@b
input-group
{
@b
input-group
{
display
:
table
;
display
:
table
;
border-collapse
:
separate
;
&
.el-input
{
&
>
.el-input__inner
{
vertical-align
:
middle
;
vertical-align
:
middle
;
display
:
table-cell
;
display
:
table-cell
;
}
}
@e
label
{
@e
append
,
prepend
{
padding
:
0
10px
;
background-color
:
#f9fafc
;
font-size
:
13px
;
color
:
#99a9bf
;
}
@e
prepend
{
vertical-align
:
middle
;
vertical-align
:
middle
;
display
:
table-cell
;
display
:
table-cell
;
position
:
relative
;
position
:
relative
;
border
:
var
(
--border-base
);
border
:
var
(
--border-base
);
border-right
:
0
;
border-radius
:
4px
;
border-radius
:
4px
;
border-top-right-radius
:
0
;
padding
:
0
10px
;
border-bottom-right-radius
:
0
;
width
:
1%
;
white-space
:
nowrap
;
&
.el-select,
&
.el-button
{
display
:
block
;
margin
:
-10px
;
}
&
.el-dropdown--text
{
&
.el-button
,
padding
:
0
10px
;
&
.el-select
.el-input__inner
,
&
.el-select
:hover
.el-input__inner
{
border-color
:
transparent
;
background-color
:
transparent
;
color
:
inherit
;
border-top
:
0
;
border-bottom
:
0
;
}
}
&
.el-button
,
&
.el-input
{
font-size
:
inherit
;
}
}
@e
prepend
{
border-right
:
0
;
border-top-right-radius
:
0
;
border-bottom-right-radius
:
0
;
}
}
@e
append
{
@e
append
{
vertical-align
:
middle
;
display
:
table-cell
;
position
:
relative
;
border
:
var
(
--border-base
);
border-left
:
0
;
border-left
:
0
;
border-radius
:
4px
;
border-top-left-radius
:
0
;
border-top-left-radius
:
0
;
border-bottom-left-radius
:
0
;
border-bottom-left-radius
:
0
;
}
}
&
.el-input
:first-child
{
&
.el-input__inner
:first-child
{
.el-input__inner
{
border-top-right-radius
:
0
;
border-top-right-radius
:
0
;
border-bottom-right-radius
:
0
;
border-bottom-right-radius
:
0
;
}
}
}
&
.el-input
:last-child
{
&
.el-input__inner
:last-child
{
.el-input__inner
{
border-top-left-radius
:
0
;
border-top-left-radius
:
0
;
border-bottom-left-radius
:
0
;
border-bottom-left-radius
:
0
;
}
}
}
&
.el-input
:not
(
:first-child
)
:not
(
:last-child
)
{
&
.el-input__inner
:not
(
:first-child
)
:not
(
:last-child
)
{
.el-input__inner
{
border-radius
:
0
;
border-radius
:
0
;
}
}
}
}
}
...
...
src/index.js
View file @
383c6096
...
@@ -9,7 +9,6 @@ import Submenu from '../packages/submenu/index.js';
...
@@ -9,7 +9,6 @@ import Submenu from '../packages/submenu/index.js';
import
MenuItem
from
'
../packages/menu-item/index.js
'
;
import
MenuItem
from
'
../packages/menu-item/index.js
'
;
import
Input
from
'
../packages/input/index.js
'
;
import
Input
from
'
../packages/input/index.js
'
;
import
InputNumber
from
'
../packages/input-number/index.js
'
;
import
InputNumber
from
'
../packages/input-number/index.js
'
;
import
InputGroup
from
'
../packages/input-group/index.js
'
;
import
Radio
from
'
../packages/radio/index.js
'
;
import
Radio
from
'
../packages/radio/index.js
'
;
import
RadioGroup
from
'
../packages/radio-group/index.js
'
;
import
RadioGroup
from
'
../packages/radio-group/index.js
'
;
import
RadioButton
from
'
../packages/radio-button/index.js
'
;
import
RadioButton
from
'
../packages/radio-button/index.js
'
;
...
@@ -48,6 +47,8 @@ import Upload from '../packages/upload/index.js';
...
@@ -48,6 +47,8 @@ import Upload from '../packages/upload/index.js';
import
Progress
from
'
../packages/progress/index.js
'
;
import
Progress
from
'
../packages/progress/index.js
'
;
import
Spinner
from
'
../packages/spinner/index.js
'
;
import
Spinner
from
'
../packages/spinner/index.js
'
;
import
Message
from
'
../packages/message/index.js
'
;
import
Message
from
'
../packages/message/index.js
'
;
import
Badge
from
'
../packages/badge/index.js
'
;
import
Card
from
'
../packages/card/index.js
'
;
const
install
=
function
(
Vue
)
{
const
install
=
function
(
Vue
)
{
if
(
install
.
installed
)
return
;
if
(
install
.
installed
)
return
;
...
@@ -63,7 +64,6 @@ const install = function(Vue) {
...
@@ -63,7 +64,6 @@ const install = function(Vue) {
Vue
.
component
(
MenuItem
.
name
,
MenuItem
);
Vue
.
component
(
MenuItem
.
name
,
MenuItem
);
Vue
.
component
(
Input
.
name
,
Input
);
Vue
.
component
(
Input
.
name
,
Input
);
Vue
.
component
(
InputNumber
.
name
,
InputNumber
);
Vue
.
component
(
InputNumber
.
name
,
InputNumber
);
Vue
.
component
(
InputGroup
.
name
,
InputGroup
);
Vue
.
component
(
Radio
.
name
,
Radio
);
Vue
.
component
(
Radio
.
name
,
Radio
);
Vue
.
component
(
RadioGroup
.
name
,
RadioGroup
);
Vue
.
component
(
RadioGroup
.
name
,
RadioGroup
);
Vue
.
component
(
RadioButton
.
name
,
RadioButton
);
Vue
.
component
(
RadioButton
.
name
,
RadioButton
);
...
@@ -99,6 +99,8 @@ const install = function(Vue) {
...
@@ -99,6 +99,8 @@ const install = function(Vue) {
Vue
.
component
(
Progress
.
name
,
Progress
);
Vue
.
component
(
Progress
.
name
,
Progress
);
Vue
.
component
(
Spinner
.
name
,
Spinner
);
Vue
.
component
(
Spinner
.
name
,
Spinner
);
Vue
.
component
(
Message
.
name
,
Message
);
Vue
.
component
(
Message
.
name
,
Message
);
Vue
.
component
(
Badge
.
name
,
Badge
);
Vue
.
component
(
Card
.
name
,
Card
);
Vue
.
use
(
Loading
);
Vue
.
use
(
Loading
);
...
@@ -128,7 +130,6 @@ module.exports = {
...
@@ -128,7 +130,6 @@ module.exports = {
MenuItem
,
MenuItem
,
Input
,
Input
,
InputNumber
,
InputNumber
,
InputGroup
,
Radio
,
Radio
,
RadioGroup
,
RadioGroup
,
RadioButton
,
RadioButton
,
...
@@ -166,5 +167,7 @@ module.exports = {
...
@@ -166,5 +167,7 @@ module.exports = {
Upload
,
Upload
,
Progress
,
Progress
,
Spinner
,
Spinner
,
Message
Message
,
Badge
,
Card
};
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment