index.vue 941 B

1234567891011121314151617181920212223242526272829303132333435
  1. <template>
  2. <el-input v-model="modelValue" v-bind="$attrs">
  3. <template #append>
  4. <el-color-picker v-model="color" :predefine="PREDEFINE_COLORS" />
  5. </template>
  6. </el-input>
  7. </template>
  8. <script lang="ts" setup>
  9. import { propTypes } from '@/utils/propTypes'
  10. import { PREDEFINE_COLORS } from '@/utils/color'
  11. import { useVModels } from '@vueuse/core'
  12. /**
  13. * 带颜色选择器输入框
  14. */
  15. defineOptions({ name: 'InputWithColor' })
  16. const props = defineProps({
  17. modelValue: propTypes.string.def('').isRequired,
  18. color: propTypes.string.def('').isRequired
  19. })
  20. const emit = defineEmits(['update:modelValue', 'update:color'])
  21. const { modelValue, color } = useVModels(props, emit)
  22. </script>
  23. <style scoped lang="scss">
  24. :deep(.el-input-group__append) {
  25. padding: 0;
  26. .el-color-picker__trigger {
  27. padding: 0;
  28. border-left: none;
  29. border-radius: 0 var(--el-input-border-radius) var(--el-input-border-radius) 0;
  30. }
  31. }
  32. </style>