1
0

InputNumberItem.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <div :class="prefixCls">
  3. <span> {{ title }}</span>
  4. <InputNumber
  5. v-bind="$attrs"
  6. size="small"
  7. :class="`${prefixCls}-input-number`"
  8. @change="handleChange"
  9. />
  10. </div>
  11. </template>
  12. <script lang="ts">
  13. import { defineComponent, PropType } from 'vue';
  14. import { InputNumber } from 'ant-design-vue';
  15. import { useDesign } from '/@/hooks/web/useDesign';
  16. import { baseHandler } from '../handler';
  17. import { HandlerEnum } from '../enum';
  18. export default defineComponent({
  19. name: 'InputNumberItem',
  20. components: { InputNumber },
  21. props: {
  22. event: {
  23. type: Number as PropType<HandlerEnum>,
  24. },
  25. title: {
  26. type: String,
  27. },
  28. },
  29. setup(props) {
  30. const { prefixCls } = useDesign('setting-input-number-item');
  31. function handleChange(e: ChangeEvent) {
  32. props.event && baseHandler(props.event, e);
  33. }
  34. return {
  35. prefixCls,
  36. handleChange,
  37. };
  38. },
  39. });
  40. </script>
  41. <style lang="less" scoped>
  42. @prefix-cls: ~'@{namespace}-setting-input-number-item';
  43. .@{prefix-cls} {
  44. display: flex;
  45. justify-content: space-between;
  46. margin: 16px 0;
  47. &-input-number {
  48. width: 126px;
  49. }
  50. }
  51. </style>