demo.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <div class="demo full">
  3. <h2>基础用法</h2>
  4. <nut-input v-model="state.val1" @change="change" @focus="focus" @blur="blur" label="文本(异步)" />
  5. <nut-input
  6. placeholder="请输入文本"
  7. @change="change"
  8. v-model="state.val0"
  9. :require-show="true"
  10. label="文本"
  11. @clear="clear"
  12. />
  13. <h2>禁用输入框</h2>
  14. <nut-input v-model="state.val2" @change="change" :disabled="true" label="文本" />
  15. <nut-input v-model="state.val3" @change="change" :readonly="true" label="文本" />
  16. <h2>限制输入长度</h2>
  17. <nut-input v-model="state.val4" @change="change" max-length="7" label="限制7" />
  18. <h2>自定义类型</h2>
  19. <nut-input v-model="state.val5" @change="change" type="password" label="密码" />
  20. <nut-input v-model="state.val6" @change="change" type="number" label="整数" />
  21. <nut-input v-model="state.val7" @change="change" type="digit" placeholder="支持小数点的输入" label="数字" />
  22. </div>
  23. </template>
  24. <script lang="ts">
  25. import { reactive } from 'vue';
  26. import { createComponent } from '../../utils/create';
  27. const { createDemo } = createComponent('input');
  28. export default createDemo({
  29. setup() {
  30. const state = reactive({
  31. val0: '',
  32. val1: '初始数据',
  33. val2: '禁止修改',
  34. val3: 'readonly 只读',
  35. val4: '',
  36. val5: '',
  37. val6: '',
  38. val7: '',
  39. val8: '文案'
  40. });
  41. setTimeout(function () {
  42. state.val1 = '异步数据';
  43. }, 2000);
  44. const change = (value: string | number, event: Event) => {
  45. console.log('change: ', value, event);
  46. };
  47. const focus = (value: string | number, event: Event) => {
  48. console.log('focus:', value, event);
  49. };
  50. const blur = (value: string | number, event: Event) => {
  51. console.log('blur:', value, event);
  52. };
  53. const clear = (value: string | number) => {
  54. console.log('clear:', value);
  55. };
  56. return {
  57. state,
  58. change,
  59. blur,
  60. clear,
  61. focus
  62. };
  63. }
  64. });
  65. </script>
  66. <style lang="scss" scoped></style>