index.vue 911 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <el-input v-model="color">
  3. <template #prepend>
  4. <el-color-picker v-model="color" :predefine="COLORS" />
  5. </template>
  6. </el-input>
  7. </template>
  8. <script setup lang="ts">
  9. import { propTypes } from '@/utils/propTypes'
  10. // 颜色输入框
  11. defineOptions({ name: 'ColorInput' })
  12. // 预设颜色
  13. const COLORS = [
  14. '#ff4500',
  15. '#ff8c00',
  16. '#ffd700',
  17. '#90ee90',
  18. '#00ced1',
  19. '#1e90ff',
  20. '#c71585',
  21. '#409EFF',
  22. '#909399',
  23. '#C0C4CC',
  24. '#b7390b',
  25. '#ff7800',
  26. '#fad400',
  27. '#5b8c5f',
  28. '#00babd',
  29. '#1f73c3',
  30. '#711f57'
  31. ]
  32. const props = defineProps({
  33. modelValue: propTypes.string.def('')
  34. })
  35. const emit = defineEmits(['update:modelValue'])
  36. const color = computed({
  37. get: () => {
  38. return props.modelValue
  39. },
  40. set: (val: string) => {
  41. emit('update:modelValue', val)
  42. }
  43. })
  44. </script>
  45. <style scoped lang="scss">
  46. :deep(.el-input-group__prepend) {
  47. padding: 0;
  48. }
  49. </style>