|
|
@@ -3,7 +3,10 @@
|
|
|
<div class="sub-agent-panel-header">
|
|
|
<div class="sub-agent-panel-header-left">
|
|
|
<span class="sub-agent-panel-title">子智能体</span>
|
|
|
- <span class="sub-agent-panel-desc">管理模型子智能体,启用后可在聊天里使用</span>
|
|
|
+ <span class="sub-agent-panel-desc">
|
|
|
+ 管理模型子智能体,启用后可在聊天里使用
|
|
|
+ <template v-if="!props.isAdmin">(只读:仅管理员可修改)</template>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<div class="sub-agent-panel-close" @click="emit('close')">
|
|
|
<div class="close-icon"></div>
|
|
|
@@ -20,7 +23,8 @@
|
|
|
<div class="sub-agent-summary">
|
|
|
<span class="sub-agent-summary-label">子智能体</span>
|
|
|
<span class="sub-agent-summary-count">{{ filteredAgents.length }}项</span>
|
|
|
- <a-button type="primary" class="sub-agent-create-btn" @click="handleCreate">
|
|
|
+ <!-- 创建属写操作:非管理员不显示 -->
|
|
|
+ <a-button v-if="props.isAdmin" type="primary" class="sub-agent-create-btn" @click="handleCreate">
|
|
|
<template #icon><PlusOutlined /></template>
|
|
|
创建
|
|
|
</a-button>
|
|
|
@@ -33,9 +37,13 @@
|
|
|
<span class="sub-agent-name">{{ agent.name }}</span>
|
|
|
</div>
|
|
|
<div class="sub-agent-actions">
|
|
|
- <a-switch :checked="agent.enabled" size="small" class="sub-agent-switch" @change="handleToggle(agent)" />
|
|
|
- <div class="action-btn edit-btn" @click.stop="handleEdit(agent)" title="编辑"></div>
|
|
|
- <div class="action-btn delete-btn" @click.stop="handleDelete(agent)" title="删除"></div>
|
|
|
+ <!-- 启用/禁用开关兼具「当前是否启用」的状态展示,非管理员保留但禁用;
|
|
|
+ 编辑/删除是纯写操作,直接不显示 -->
|
|
|
+ <a-switch :checked="agent.enabled" :disabled="!props.isAdmin" size="small" class="sub-agent-switch" @change="handleToggle(agent)" />
|
|
|
+ <template v-if="props.isAdmin">
|
|
|
+ <div class="action-btn edit-btn" @click.stop="handleEdit(agent)" title="编辑"></div>
|
|
|
+ <div class="action-btn delete-btn" @click.stop="handleDelete(agent)" title="删除"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="sub-agent-desc">{{ agent.description }}</div>
|
|
|
@@ -91,6 +99,14 @@
|
|
|
import CreateSubAgentModal from '/@/views/ventAI/manageAssistent/components/modals/CreateSubAgentModal.vue';
|
|
|
import type { SubAgent } from '/@/views/ventAI/manageAssistent/types/index';
|
|
|
|
|
|
+ /**
|
|
|
+ * 是否管理员:决定本面板是「可管理」还是「只读」。
|
|
|
+ *
|
|
|
+ * 可选并默认 false —— 值缺失时按非管理员处理(保守方向:宁可少给编辑入口)。
|
|
|
+ * 注意这只是界面可见性,真正的权限拦截仍在 TfAgents 后端,前端隐藏不等于安全。
|
|
|
+ */
|
|
|
+ const props = withDefaults(defineProps<{ isAdmin?: boolean }>(), { isAdmin: false });
|
|
|
+
|
|
|
const emit = defineEmits<{ (e: 'close'): void }>();
|
|
|
|
|
|
const agents = ref<SubAgent[]>([]);
|