CustomRender.vue 849 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. <script lang="ts">
  2. import { defineComponent, PropType } from 'vue'
  3. import { LeFormItem, ObjectOpts } from '@/components/FormConfig/formConfig.types.ts'
  4. const CustomRenderProps = {
  5. form: {
  6. required: true,
  7. /**
  8. * { render:function({ form, params }) { JSX || createElement }, ...form 配置 }
  9. */
  10. type: Object as PropType<LeFormItem>
  11. },
  12. params: {
  13. required: true,
  14. type: Object as PropType<ObjectOpts>
  15. }
  16. }
  17. // 自定义渲染
  18. const Component = defineComponent({
  19. name: 'LeCustomRender',
  20. props: CustomRenderProps,
  21. setup(props, ctx) {
  22. const { form, params } = props
  23. /*const extendsParams = {
  24. form,
  25. params
  26. }*/
  27. const render = props.form?.render
  28. return () => {
  29. if (typeof render === 'function') {
  30. return render(props)
  31. // return render(extendsParams)
  32. }
  33. return ''
  34. }
  35. }
  36. })
  37. export default Component
  38. </script>