mirror of
https://github.com/certd/certd.git
synced 2026-07-09 14:17:37 +08:00
refactor: move
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<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)
|
||||
}
|
||||
})
|
||||
const comp = resolveComponent(props.name)
|
||||
return () => h(comp, context.$attrs, props.children)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user