소스 검색

Merge pull request #2263 from Kingwl/input-resize

Input: support resize prop
baiyaaaaa 8 년 전
부모
커밋
3820ec03bb
4개의 변경된 파일12개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 0
      examples/docs/en-US/input.md
  2. 1 0
      examples/docs/zh-CN/input.md
  3. 5 2
      packages/input/src/calcTextareaHeight.js
  4. 5 1
      packages/input/src/input.vue

+ 1 - 0
examples/docs/en-US/input.md

@@ -565,6 +565,7 @@ Search data from server-side.
 |name | same as `name` in native input | string | — | — |
 |max | same as `max` in native input | * | — | — |
 |min | same as `min` in native input | * | — | — |
+|resize| control the resizability | string | none, both, horizontal, vertical | — |
 |autofocus | same as `autofocus` in native input | boolean | — | false |
 |form | same as `form` in native input | string | — | — |
 

+ 1 - 0
examples/docs/zh-CN/input.md

@@ -728,6 +728,7 @@ export default {
 | name | 原生属性 | string | — | — |
 | max | 原生属性,设置最大值 | * | — | — |
 | min | 原生属性,设置最小值 | * | — | — |
+| resize | 控制是否能被用户缩放 | string | none, both, horizontal, vertical | — |
 | autofocus | 原生属性,自动获取焦点 | boolean | true, false | false |
 | form | 原生属性 | string | — | — |
 

+ 5 - 2
packages/input/src/calcTextareaHeight.js

@@ -1,3 +1,5 @@
+import merge from 'element-ui/src/utils/merge';
+
 let hiddenTextarea;
 
 const HIDDEN_STYLE = `
@@ -53,7 +55,8 @@ function calculateNodeStyling(node) {
 export default function calcTextareaHeight(
   targetNode,
   minRows = null,
-  maxRows = null
+  maxRows = null,
+  options = null
 ) {
   if (!hiddenTextarea) {
     hiddenTextarea = document.createElement('textarea');
@@ -96,5 +99,5 @@ export default function calcTextareaHeight(
     height = Math.min(maxHeight, height);
   }
 
-  return { height: height + 'px'};
+  return merge({ height: height + 'px'}, options);
 };

+ 5 - 1
packages/input/src/input.vue

@@ -88,6 +88,7 @@
       value: [String, Number],
       placeholder: String,
       size: String,
+      resize: String,
       readonly: Boolean,
       autofocus: Boolean,
       icon: String,
@@ -149,7 +150,10 @@
         const minRows = autosize.minRows;
         const maxRows = autosize.maxRows;
 
-        this.textareaStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows);
+        const options = {
+          resize: this.resize
+        };
+        this.textareaStyle = calcTextareaHeight(this.$refs.textarea, minRows, maxRows, options);
       },
       handleFocus(event) {
         this.$emit('focus', event);