diff --git a/apps/admin-web/src/components/KnowledgeGroupSelect.vue b/apps/admin-web/src/components/KnowledgeGroupSelect.vue new file mode 100644 index 0000000..6e4547a --- /dev/null +++ b/apps/admin-web/src/components/KnowledgeGroupSelect.vue @@ -0,0 +1,75 @@ + + + diff --git a/apps/admin-web/src/components/PromptRuleModal.vue b/apps/admin-web/src/components/PromptRuleModal.vue index db4d35c..8f96f56 100644 --- a/apps/admin-web/src/components/PromptRuleModal.vue +++ b/apps/admin-web/src/components/PromptRuleModal.vue @@ -6,6 +6,7 @@ import type { PromptRule, PromptRuleGroup } from "@geo/shared-types"; import { computed, reactive, watch } from "vue"; import { useI18n } from "vue-i18n"; +import KnowledgeGroupSelect from "@/components/KnowledgeGroupSelect.vue"; import { promptRulesApi } from "@/lib/api"; import { formatError } from "@/lib/errors"; @@ -29,6 +30,7 @@ const form = reactive({ default_tone: "", default_word_count: undefined as number | undefined, group_id: undefined as number | undefined, + knowledge_group_ids: [] as number[], }); const groupsQuery = useQuery({ @@ -50,6 +52,7 @@ watch( form.default_tone = rule?.default_tone ?? ""; form.default_word_count = rule?.default_word_count ?? undefined; form.group_id = rule?.group_id ?? undefined; + form.knowledge_group_ids = rule?.knowledge_group_ids ?? []; }, ); @@ -62,6 +65,7 @@ const createMutation = useMutation({ scene: form.scene.trim() || undefined, default_tone: form.default_tone.trim() || undefined, default_word_count: form.default_word_count, + knowledge_group_ids: form.knowledge_group_ids, }), onSuccess: async (data) => { message.success(t("custom.messages.ruleCreated")); @@ -81,6 +85,7 @@ const updateMutation = useMutation({ scene: form.scene.trim() || undefined, default_tone: form.default_tone.trim() || undefined, default_word_count: form.default_word_count, + knowledge_group_ids: form.knowledge_group_ids, }), onSuccess: async () => { message.success(t("custom.messages.ruleUpdated")); @@ -197,6 +202,14 @@ async function handleSubmit(): Promise { /> + +
+ + +