demo.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <div class="textinput-demo">
  3. <h4>标准样式</h4>
  4. <div class="filed-demo">
  5. <nut-field label="标题内容:" placeholder="请输入内容" v-model="val" />
  6. </div>
  7. <h4>文字左对齐,且不展示 清除 按钮</h4>
  8. <div class="filed-demo">
  9. <nut-field :disableClear="true" v-model="val2" label="文本左对齐:" textAlign="left" placeholder="请输入内容" />
  10. </div>
  11. <h4>标题超出长度限制</h4>
  12. <div class="filed-demo">
  13. <nut-field v-model="val2" label="标题长度超出超出超出范围:" textAlign="right" placeholder="请输入内容" />
  14. </div>
  15. <h4>数字</h4>
  16. <div class="filed-demo">
  17. <nut-field v-model="val4" label="请输入数字" type="number" />
  18. </div>
  19. <h4>错误验证</h4>
  20. <div class="filed-demo">
  21. <nut-field v-model="val5" :state="state" :requireShow="true" label="手机号码" @inputFunc="checkVal5" />
  22. </div>
  23. <h4>禁用输入框</h4>
  24. <div class="filed-demo">
  25. <nut-field v-model="val6" :readonly="true" label="标题内容" />
  26. </div>
  27. <div class="filed-demo line">
  28. <nut-field v-model="val7" :disabled="true" label="标题内容" />
  29. </div>
  30. <h4>文本域(不限制字数,高度自适应)</h4>
  31. <div class="filed-demo">
  32. <nut-field label="自我介绍" placeholder="自我介绍" v-model="val3" :autosize="true" :limitShow="false" type="textarea" @errorFunc="error" />
  33. </div>
  34. <h4>文本域(显示字数统计)</h4>
  35. <div class="filed-demo">
  36. <nut-field label="自我介绍" placeholder="自我介绍" v-model="val4" type="textarea" @errorFunc="error" maxLength="20" rows="4" />
  37. </div>
  38. <h4>事件输入事件</h4>
  39. <div>
  40. <nut-cell>
  41. <span slot="title">
  42. <nut-field label="标题内容:" placeholder="请输入内容" v-model="val" @input-func="fn" />
  43. </span>
  44. </nut-cell>
  45. </div>
  46. <h4>右侧自定义DOM</h4>
  47. <div class="filed-demo">
  48. <nut-field label="验证码:" textAlign="left" placeholder="请输入内容" v-model="val" @inputFunc="fn" >
  49. <div class="get-code"> 获取验证码</div>
  50. </nut-field>
  51. </div>
  52. </div>
  53. </template>
  54. <script>
  55. export default {
  56. data() {
  57. return {
  58. val: '',
  59. val2: '这里文本内容',
  60. val3: '',
  61. val4: '',
  62. val5: '12345678985',
  63. val6: '输入框只读',
  64. val7: '输入框已禁用',
  65. val8: '',
  66. val9: '',
  67. result: '尚未触发',
  68. state:"error"
  69. };
  70. },
  71. mounted() {
  72. const th = this;
  73. this.$nextTick(function() {
  74. setTimeout(function() {
  75. th.$refs.myInput.focus();
  76. }, 2000);
  77. });
  78. },
  79. methods: {
  80. onFocus() {
  81. this.result = 'focus事件触发!';
  82. },
  83. onBlur() {
  84. this.result = 'blur事件触发!';
  85. },
  86. fn(data){
  87. console.log(data)
  88. },
  89. error(data){
  90. // alert("文字超出限制了")
  91. },
  92. checkVal5(data){
  93. if(!(/^1[3456789]\d{9}$/.test(data))){
  94. console.log(false)
  95. this.state="error";
  96. } else{
  97. console.log(true)
  98. this.state="";
  99. }
  100. },
  101. submit() {
  102. this.$refs.myInput.blur();
  103. }
  104. }
  105. };
  106. </script>
  107. <style lang="scss" scope>
  108. .demo {
  109. padding: 0;
  110. }
  111. h4{
  112. margin-left: 10px;
  113. }
  114. .text-area {
  115. width: 100%;
  116. background: rgba(255, 255, 255, 1);
  117. }
  118. .wrapper-cell .nut-cell {
  119. margin: 0 0 0 20px;
  120. }
  121. .filed-demo{
  122. width: 100vw;
  123. box-sizing: border-box;
  124. overflow: hidden;
  125. background-color: #fff;
  126. padding: 5px 20px 5px 20px ;
  127. .get-code {
  128. min-width: 80px;
  129. background-color: #07c160;
  130. border: 1px solid #07c160;
  131. color: #fff;
  132. margin: 10px 0;
  133. }
  134. }
  135. .line{
  136. border-top: 1px solid rgba(230,230,230,1) ;
  137. }
  138. </style>