Files
certd/packages/ui/certd-ui/src/components/component-render.vue
T

34 lines
672 B
Vue
Raw Normal View History

2021-01-30 00:06:50 +08:00
<script>
import { h, resolveComponent } from 'vue'
import _ from 'lodash-es'
export default {
name: 'component-render',
props: {
name: {
type: String,
default: 'a-input'
},
children: {
type: Array
},
on: {
type: Object
}
},
setup (props, context) {
const attrs = {
...context.$attrs
}
_.forEach(props.on, (value, key) => {
attrs[key] = value
if (typeof value === 'string') {
// eslint-disable-next-line no-eval
attrs[key] = eval(value)
}
})
2021-02-05 14:30:31 +08:00
const comp = resolveComponent(props.name)
return () => h(comp, context.$attrs, props.children)
2021-01-30 00:06:50 +08:00
}
}
</script>