schangxiang@126.com
2025-04-29 27ba504441037666e787ded85b4af2f65be65c17
HIAWms/web/src/components/BaseInput/BaseInput.tsx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
import { defineComponent, SetupContext, ref, computed } from 'vue'
import styles from './BaseInput.module.scss'
export default defineComponent({
  name: 'BaseInput',
  emits: ['update:modelValue', 'click'],
  props: {
    modelValue: {
      type: [String, Number],
      default: '',
    },
    placeholder: {
      type: String,
      default: '请输入',
    },
  },
  setup(props, { attrs, slots, emit }: SetupContext) {
    const input = computed({
      get() {
        return props.modelValue
      },
      set(val) {
        emit('update:modelValue', val)
      },
    })
    const onClick = (evt: Event) => {
      evt?.stopPropagation()
      emit('click', evt)
    }
    return () => {
      return (
        <div class={styles.baseInput} onClick={onClick}>
          <input
            placeholder={props.placeholder}
            class={{
              [styles.input]: true,
              [styles.hover]: true,
            }}
            v-model={input.value}
          />
          {/* <span class={styles.hasHover}>
            {input.value ? (
              input.value
            ) : (
              <span style="color:#929AB1;padding-right:200px">
                {props.placeholder}
              </span>
            )}
          </span> */}
        </div>
      )
    }
  },
})