index.jsx 995 B

12345678910111213141516171819202122232425262728
  1. import { computed } from 'vue'
  2. import { layoutProps } from '../layout-props'
  3. import './index.less'
  4. export default {
  5. props: layoutProps,
  6. setup (props, { slots }) {
  7. const grid = computed(() => {
  8. return props.config._isGrid
  9. })
  10. const Item = (option, index) => {
  11. const { children: classify, ...classifyConfig } = option
  12. // const title = !props.config.hideIndex ? `第${index + 1}步:${stepConfig.title}` : stepConfig.title
  13. return <div class={'basic-classify-layout__item'} key={index}>
  14. <h2 class={'basic-classify-layout__item__title'}>{classifyConfig.title}</h2>
  15. <div
  16. class={{ 'cip-form--grid': grid.value }}
  17. style={{ gridTemplateColumns: `repeat(${typeof grid.value === 'number' ? grid.value : 3},1fr)` }} >
  18. {slots.item?.({ children: classify })}
  19. </div>
  20. </div>
  21. }
  22. return () => (
  23. <div class={'basic-classify-layout'}>
  24. {props.config.options?.map(Item)}
  25. </div>
  26. )
  27. }
  28. }