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

33 lines
650 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)
}
})
return () => h(resolveComponent(props.name), context.$attrs, props.children)
}
}
</script>