mirror of https://github.com/halo-dev/halo
55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
![]() |
# Console 组件介绍
|
|||
|
|
|||
|
目前 Console 的组件包含基础组件(`@halo-dev/components`)和 Console 端的业务组件,这两种组件都可以在插件中使用。
|
|||
|
|
|||
|
## 业务组件
|
|||
|
|
|||
|
### AnnotationsForm
|
|||
|
|
|||
|
此组件用于为自定义模型设置 annotations 数据,同时支持自定义 key / value 和自定义表单,表单定义方式可以参考:<https://docs.halo.run/developer-guide/annotations-form>
|
|||
|
|
|||
|
使用方式:
|
|||
|
|
|||
|
```vue
|
|||
|
<script setup lang="ts">
|
|||
|
const formState = ref({
|
|||
|
metadata: {
|
|||
|
annotations: {}
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
const annotationsFormRef = ref();
|
|||
|
|
|||
|
async function handleSubmit () {
|
|||
|
annotationsFormRef.value?.handleSubmit();
|
|||
|
|
|||
|
await nextTick();
|
|||
|
|
|||
|
const { customAnnotations, annotations, customFormInvalid, specFormInvalid } =
|
|||
|
annotationsFormRef.value || {};
|
|||
|
|
|||
|
// AnnotationsForm 中的表单校验失败时,不提交数据
|
|||
|
if (customFormInvalid || specFormInvalid) {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// 合并数据,此对象即可最终设置给模型的 metadata.annotations
|
|||
|
const annotations = {
|
|||
|
...annotations,
|
|||
|
...customAnnotations,
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<template>
|
|||
|
<AnnotationsForm
|
|||
|
ref="annotationsFormRef"
|
|||
|
:value="formState.metadata.annotations"
|
|||
|
kind="Post"
|
|||
|
group="content.halo.run"
|
|||
|
/>
|
|||
|
</template>
|
|||
|
```
|
|||
|
|
|||
|
其中,kind 和 group 为必填项,分别表示模型的 kind 和 group。
|