demo.tsx 4.0 KB
Newer Older
L
liuyijun 已提交
1
import React, { useState } from 'react'
J
junjun666 已提交
2
import { useTranslate } from '../../sites/assets/locale'
L
liuyijun 已提交
3 4 5 6
import { InputNumber } from './inputnumber'
import Cell from '@/packages/cell'
import Toast from '@/packages/toast'

O
oasis-cloud 已提交
7
interface ValState {
L
liuyijun 已提交
8 9 10 11 12 13 14 15 16
  val1: number | string
  val2: number | string
  val3: number | string
  val4: number | string
  val5: number | string
  val6: number | string
  val7: number | string
  val8: number | string
}
J
junjun666 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29

interface T {
  '6333c786': string
  '0137871a': string
  '84aa6bce': string
  '55cc5fb7': string
  '9636103a': string
  '181965e2': string
  e7b2ce1f: string
  '3a42134b': string
  '65bafb1d': string
  '7e2394ae': string
}
L
liuyijun 已提交
30
const InputNumberDemo = () => {
J
junjun666 已提交
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
  const [translated] = useTranslate<T>({
    'zh-CN': {
      '6333c786': '超出限制事件触发',
      '0137871a': '异步演示2秒后更改',
      '84aa6bce': '基础用法',
      '55cc5fb7': '步长设置',
      '9636103a': '限制输入范围',
      '181965e2': '禁用操作',
      e7b2ce1f: '只读禁用输入框',
      '3a42134b': '支持小数点',
      '65bafb1d': '支持异步修改',
      '7e2394ae': '自定义按钮大小',
    },
    'zh-TW': {
      '6333c786': '超出限制事件觸發',
      '0137871a': '異步演示2秒後更改',
      '84aa6bce': '基礎用法',
      '55cc5fb7': '步長設置',
      '9636103a': '限制輸入範圍',
      '181965e2': '禁用操作',
      e7b2ce1f: '只讀禁用輸入框',
      '3a42134b': '支持小數點',
      '65bafb1d': '支持異步修改',
      '7e2394ae': '自定義按鈕大小',
    },
    'en-US': {
      '6333c786': 'Exceeded limit event triggered',
      '0137871a': 'Async demo changes after 2 seconds',
      '84aa6bce': 'Basic usage',
      '55cc5fb7': 'Step size setting',
      '9636103a': 'Limit input range',
      '181965e2': 'Disable operation',
      e7b2ce1f: 'read-only disabled input box',
      '3a42134b': 'support decimal point',
      '65bafb1d': 'Support for asynchronous modification',
      '7e2394ae': 'custom button size',
    },
  })

O
oasis-cloud 已提交
70
  const [inputState, setInputState] = useState<ValState>({
L
liuyijun 已提交
71 72 73 74 75 76 77 78 79 80 81
    val1: 1,
    val2: 0,
    val3: 10,
    val4: 0,
    val5: 1,
    val6: 5.5,
    val7: 1,
    val8: 1,
  })
  const overlimit = (e: MouseEvent) => {
    console.log(e)
J
junjun666 已提交
82
    Toast.warn(translated['6333c786'])
L
liuyijun 已提交
83 84
  }
  const onChange = (value: string | number) => {
J
junjun666 已提交
85
    Toast.loading(translated['0137871a'])
L
liuyijun 已提交
86 87 88 89 90 91 92 93 94
    setTimeout(() => {
      inputState.val7 = Number(value)
      setInputState({ ...inputState })
      Toast.hide()
    }, 2000)
  }
  return (
    <>
      <div className="demo">
J
junjun666 已提交
95
        <h2>{translated['84aa6bce']}</h2>
L
liuyijun 已提交
96 97 98
        <Cell>
          <InputNumber modelValue={inputState.val1} />
        </Cell>
J
junjun666 已提交
99
        <h2>{translated['55cc5fb7']}</h2>
L
liuyijun 已提交
100 101 102
        <Cell>
          <InputNumber modelValue={inputState.val2} step="5" />
        </Cell>
J
junjun666 已提交
103
        <h2>{translated['9636103a']}</h2>
L
liuyijun 已提交
104
        <Cell>
O
oasis-cloud 已提交
105 106 107 108
          <InputNumber
            modelValue={inputState.val3}
            min="10"
            max="20"
109
            onOverlimit={overlimit}
O
oasis-cloud 已提交
110
          />
L
liuyijun 已提交
111
        </Cell>
J
junjun666 已提交
112
        <h2>{translated['181965e2']}</h2>
L
liuyijun 已提交
113 114 115
        <Cell>
          <InputNumber modelValue={inputState.val4} disabled />
        </Cell>
J
junjun666 已提交
116
        <h2>{translated.e7b2ce1f}</h2>
L
liuyijun 已提交
117 118 119
        <Cell>
          <InputNumber modelValue={inputState.val5} readonly />
        </Cell>
J
junjun666 已提交
120
        <h2>{translated['3a42134b']}</h2>
L
liuyijun 已提交
121
        <Cell>
O
oasis-cloud 已提交
122 123 124 125 126 127
          <InputNumber
            modelValue={inputState.val6}
            step="0.1"
            decimalPlaces="1"
            readonly
          />
L
liuyijun 已提交
128
        </Cell>
J
junjun666 已提交
129
        <h2>{translated['65bafb1d']}</h2>
L
liuyijun 已提交
130
        <Cell>
131 132 133 134 135
          <InputNumber
            modelValue={inputState.val7}
            onChangeFuc={onChange}
            isAsync
          />
L
liuyijun 已提交
136
        </Cell>
J
junjun666 已提交
137
        <h2>{translated['7e2394ae']}</h2>
L
liuyijun 已提交
138
        <Cell>
O
oasis-cloud 已提交
139 140 141 142 143
          <InputNumber
            modelValue={inputState.val8}
            buttonSize="30"
            inputWidth="50"
          />
L
liuyijun 已提交
144 145 146 147 148 149 150
        </Cell>
      </div>
    </>
  )
}

export default InputNumberDemo