Просмотр исходного кода

feat:知识库详情配置form中新增权限项

hanyang 1 год назад
Родитель
Сommit
c75235512c

+ 10 - 0
public/i18n/lang-en.json

@@ -236,11 +236,21 @@
     "label_name": "Knowledge Base Name",
     "input_placeholder": "Please enter",
     "label_desc": "Knowledge Base Description",
+    "label_permission": "Permission",
+    "permission_tooltip": "If the permission is set to 'Team', all team members can operate the knowledge base.",
+    "permission_item_1": "Only Me",
+    "permission_item_2": "Team",
     "label_model": "Embedded Model",
     "label_parser": "Parsing Method",
     "label_layout": "Layout Recognition",
     "label_prompt_placeholder": "Please fill in the prompt",
     "save_btn": "Save",
+    "config_success": "Configuration successful",
+    "config_form_rule": {
+      "rule_1": "Knowledge base name cannot be empty",
+      "rule_2": "Please select",
+      "rule_3": "Prompt word cannot be empty"
+    },
     "config_info": {
       "h4_1": "Block Method Description",
       "h4_2": "Example",

+ 10 - 0
public/i18n/lang-zh.json

@@ -229,11 +229,21 @@
     "label_name": "知识库名称",
     "input_placeholder": "请输入",
     "label_desc": "知识库描述",
+    "label_permission": "权限",
+    "permission_tooltip": "如果权限是“团队”,则所有团队成员都可以操作知识库。",
+    "permission_item_1": "只有我",
+    "permission_item_2": "团队",
     "label_model": "嵌入模型",
     "label_parser": "解析方法",
     "label_layout": "布局识别",
     "label_prompt_placeholder": "请填写提示词",
     "save_btn": "保存",
+    "config_success": "配置成功",
+    "config_form_rule": {
+      "rule_1": "知识库名称不允许为空",
+      "rule_2": "请选择",
+      "rule_3": "提示词不允许为空"
+    },
     "config_info": {
       "h4_1": "分块方法说明",
       "h4_2": "示例",

+ 52 - 32
src/modules/knowledge/rgflow/knowledgeLib/config.vue

@@ -24,6 +24,17 @@
           <a-form-item field="section" :label="$t('knowledgeLib.label_desc')">
             <a-textarea placeholder="" v-model="form.description" allow-clear />
           </a-form-item>
+          <!-- 权限 -->
+          <a-form-item
+            field="permission"
+            :tooltip="$t('knowledgeLib.permission_tooltip')"
+            :label="$t('knowledgeLib.label_permission')"
+          >
+            <a-radio-group v-model="form.permission">
+              <a-radio value="me">{{ $t('knowledgeLib.permission_item_1') }}</a-radio>
+              <a-radio value="team">{{ $t('knowledgeLib.permission_item_2') }}</a-radio>
+            </a-radio-group>
+          </a-form-item>
           <!-- 嵌入模型 -->
           <a-form-item field="embd_id" :label="$t('knowledgeLib.label_model')">
             <a-select
@@ -206,15 +217,14 @@
 </template>
 
 <script setup>
-import { onMounted, onBeforeMount, reactive, ref, nextTick } from 'vue';
-import Upload from './components/Upload.vue';
+import { onMounted, onBeforeMount, reactive, ref, nextTick, computed } from 'vue';
 import { Message } from '@arco-design/web-vue';
 import { queryModelList, kbUpdate, getKnowledgeBaseModel } from '../../../../apis/rgflow-dify';
 import { toSyncOwnKnowledge } from './asyc.js';
-import message from '@arco-design/web-vue/es/message';
 import useLoading from './loading';
-import step1 from '../../../../assets/image/management/step1.png';
-import step2 from '../../../../assets/image/management/step2.png';
+import { useI18n } from 'vue-i18n';
+
+const { t } = useI18n();
 
 const { loading, setLoading } = useLoading(true);
 const scrollContainer = ref();
@@ -252,32 +262,40 @@ const form = reactive({
   layout_recognize: true
 });
 
-const rules = {
-  name: [
-    {
-      required: true,
-      message: '知识库名称不允许为空'
-    }
-  ],
-  embd_id: [
-    {
-      required: true,
-      message: '请选择'
-    }
-  ],
-  parser_id: [
-    {
-      required: true,
-      message: '请选择'
-    }
-  ],
-  prompt: [
-    {
-      required: true,
-      message: '提示词不允许为空'
-    }
-  ]
-};
+const rules = computed(() => {
+  return {
+    name: [
+      {
+        required: true,
+        message: t('knowledgeLib.config_form_rule.rule_1')
+      }
+    ],
+    embd_id: [
+      {
+        required: true,
+        message: t('knowledgeLib.config_form_rule.rule_2')
+      }
+    ],
+    permission: [
+      {
+        required: true,
+        message: t('knowledgeLib.config_form_rule.rule_2')
+      }
+    ],
+    parser_id: [
+      {
+        required: true,
+        message: t('knowledgeLib.config_form_rule.rule_2')
+      }
+    ],
+    prompt: [
+      {
+        required: true,
+        message: t('knowledgeLib.config_form_rule.rule_3')
+      }
+    ]
+  };
+});
 let visible = ref(false);
 const formRef = ref();
 const modelList = ref({});
@@ -330,11 +348,13 @@ const handleSubmit = async ({ values, errors }) => {
     setLoading(true);
     const data = await kbUpdate(parms);
     if (data.retcode == '0') {
-      Message.success('配置成功');
+      Message.success(t('knowledgeLib.config_success'));
       // window.location.reload();
       emit('saveConfig');
       //TODO 同步数据
       toSyncOwnKnowledge(kbObj.id);
+    } else {
+      Message.error(t('management.no_permission'));
     }
     setLoading(false);
   } catch (err) {

+ 0 - 1
src/modules/knowledge/rgflow/knowledgeLib/index.vue

@@ -449,7 +449,6 @@ let timer = null; // 定时器
 
 const selectTab = (item) => {
   // selectedTab.value = index;
-  console.log(item, 99);
   checkedArr.value = [];
   kbobj = item;
   kbId = kbobj.id;