view.jsx 1013 B

1234567891011121314151617181920212223242526272829
  1. import { computed } from 'vue'
  2. import { formInputViewProps } from '../../form-input-props'
  3. import { useOptions, useFormView } from '@cip/components/hooks/form-input'
  4. import './view.less'
  5. export default {
  6. props: formInputViewProps,
  7. setup (props) {
  8. const { securityConfig } = useFormView(props)
  9. const multiple = computed(() => {
  10. return securityConfig.value.multiple ?? false
  11. })
  12. const { options, optionProps, getValue } = useOptions(props, multiple)
  13. const viewValue = computed(() => {
  14. const values = [].concat(getValue(props.modelValue))
  15. return options.value?.filter(v => values.includes(v[optionProps.value.value]))
  16. })
  17. return () => <div>
  18. {viewValue.value.map(option => (
  19. <img
  20. class={'select-image-view__image'}
  21. key={option[optionProps.value.value]}
  22. src={option[optionProps.value.label]}
  23. width={securityConfig.value.width ?? 64}
  24. style={ 'vertical-align: middle;'}
  25. />
  26. ))}
  27. </div>
  28. }
  29. }