From 5efb195a3e0c956c4b254408a8868368135eb773 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 16 八月 2024 14:11:52 +0800
Subject: [PATCH] fix: 模型修改

---
 src/router/routes/modules/session.ts            |    2 
 src/api/model.ts                                |    7 +
 src/views/dmx/model/index.vue                   |  118 ++++++++++++++---------
 src/views/dmx/agent/components/editAgent.vue    |  129 ++++++++++++++++---------
 yarn.lock                                       |    2 
 src/views/dmx/model/components/addTableName.vue |    9 +
 src/components/menu/index.vue                   |    7 +
 src/views/dmx/model/components/addPageModel.vue |    2 
 src/router/routes/modules/authority.ts          |    1 
 9 files changed, 176 insertions(+), 101 deletions(-)

diff --git a/src/api/model.ts b/src/api/model.ts
index a5eca7f..813d6e6 100644
--- a/src/api/model.ts
+++ b/src/api/model.ts
@@ -83,3 +83,10 @@
     params,
   });
 }
+
+// 鑾峰彇妯″瀷鍒楄〃 
+export function getFactories(params) {
+  return axios.get('/api/v1/llm/factories', {
+    params,
+  });
+}
diff --git a/src/components/menu/index.vue b/src/components/menu/index.vue
index 4485255..d7db1e6 100644
--- a/src/components/menu/index.vue
+++ b/src/components/menu/index.vue
@@ -31,6 +31,7 @@
 
       const goto = (item: RouteRecordRaw) => {
         // Open external link
+
         if (regexUrl.test(item.path)) {
           openWindow(item.path);
           selectedKey.value = [item.name as string];
@@ -84,7 +85,8 @@
       };
       listenerRouteChange((newRoute) => {
         const { requiresAuth, activeMenu, hideInMenu } = newRoute.meta;
-        if (requiresAuth && (!hideInMenu || activeMenu)) {
+        //  if (requiresAuth && (!hideInMenu || activeMenu)) {//闄ゅ幓杩欎袱涓垽鏂悗锛屽彲浠ユ甯稿睍寮�鑿滃崟
+        if (requiresAuth) {
           const menuOpenKeys = findMenuOpenKeys(
             (activeMenu || newRoute.name) as string
           );
@@ -96,6 +98,7 @@
             activeMenu || menuOpenKeys[menuOpenKeys.length - 1],
           ];
         }
+        console.log(selectedKey.value, 48877);
       }, true);
       const setCollapse = (val: boolean) => {
         if (appStore.device === 'desktop')
@@ -139,6 +142,7 @@
       };
 
       // selected-keys={selectedKey.value}
+      console.log(selectedKey.value, 68877);
       return () => (
         <a-menu
           mode={topMenu.value ? 'horizontal' : 'vertical'}
@@ -147,6 +151,7 @@
           show-collapse-button={appStore.device !== 'mobile'}
           auto-open={false}
           auto-open-selected={true}
+          selected-keys={selectedKey.value}
           level-indent={34}
           style="height: 100%;width:100%;"
           onCollapse={setCollapse}
diff --git a/src/router/routes/modules/authority.ts b/src/router/routes/modules/authority.ts
index d848aa2..a7c28e5 100644
--- a/src/router/routes/modules/authority.ts
+++ b/src/router/routes/modules/authority.ts
@@ -10,6 +10,7 @@
     requiresAuth: true,
     icon: 'icon-lock',
     order: 5,
+    activeMenu:false,
   },
   children: [
     {
diff --git a/src/router/routes/modules/session.ts b/src/router/routes/modules/session.ts
index 3a43192..f22e482 100644
--- a/src/router/routes/modules/session.ts
+++ b/src/router/routes/modules/session.ts
@@ -19,7 +19,7 @@
                 requiresAuth: true,
                 hideInMenu:true,
                 roles: ['*'],
-                activeMenu:'session'
+                // activeMenu:'session'
             },
             component:()=>import('@/views/sessionManager/index.vue'),
         }
diff --git a/src/views/dmx/agent/components/editAgent.vue b/src/views/dmx/agent/components/editAgent.vue
index f10b761..86ea2e4 100644
--- a/src/views/dmx/agent/components/editAgent.vue
+++ b/src/views/dmx/agent/components/editAgent.vue
@@ -19,48 +19,87 @@
     title-align="start"
     fullscreen
   >
-  <div class="main-container">
-    <div class="main-container-lf">
-      <div style="padding: 10px;font-size: 16px;background: var(--color-neutral-3);">鏅鸿兘浣撻厤缃�</div>
-      <div style="display: flex;width: 100%;" :style="{height:height}">
-        <div style="width: 50%;height: 100%">
-          <div style="padding: 10px;font-size: 12px;color: #2a2a2b;">鏅鸿兘浣撶敾鍍�</div>
-          <div>
-            <a-textarea v-model="system" placeholder="" disabled style="height: 400px;"  />
+    <div class="main-container">
+      <div class="main-container-lf">
+        <div
+          style="
+            padding: 10px;
+            font-size: 16px;
+            background: var(--color-neutral-3);
+          "
+          >鏅鸿兘浣撻厤缃�</div
+        >
+        <div style="display: flex; width: 100%" :style="{ height: height }">
+          <div style="width: 50%; height: 100%">
+            <div style="padding: 10px; font-size: 12px; color: #2a2a2b"
+              >鏅鸿兘浣撶敾鍍�</div
+            >
+            <div>
+              <a-textarea
+                v-model="system"
+                placeholder=""
+                disabled
+                style="height: 400px"
+              />
+            </div>
           </div>
-
-        </div>
-        <div style="width: 50%;border: 1px solid var(--color-neutral-3);background:  var(--color-neutral-3)">
-          <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit"  layout="vertical" >
-            <a-collapse :default-active-key="['1']">
-              <a-collapse-item header="鍩虹淇℃伅" key="0" v-if="typeAngint == 'edit'">
-                <a-input v-model="form.name" placeholder="璇疯緭鍏ユ櫤鑳戒綋鍚嶇О"  style="width:200px;margin-top: 10px" />
-              </a-collapse-item>
-              <a-collapse-item header="AI妯″瀷閰嶇疆" key="1">
-                <a-form-item field="llm_id" label="妯″瀷">
-                  <a-space direction="vertical" size="large">
-                    <a-select :size="'large'" field="llm_id" v-model="form.llm_id" :style="{width:'25rem'}" placeholder="璇烽�夋嫨 ...">
-                      <a-optgroup
-                        :label="index"
-                        v-for="(item, index) in modelList"
-                        :key="index"
+          <div
+            style="
+              width: 50%;
+              border: 1px solid var(--color-neutral-3);
+              background: var(--color-neutral-3);
+            "
+          >
+            <a-form
+              ref="formRef"
+              :rules="rules"
+              :model="form"
+              @submit="handleSubmit"
+              layout="vertical"
+            >
+              <a-collapse :default-active-key="['1']">
+                <a-collapse-item
+                  header="鍩虹淇℃伅"
+                  key="0"
+                  v-if="typeAngint == 'edit'"
+                >
+                  <a-input
+                    v-model="form.name"
+                    placeholder="璇疯緭鍏ユ櫤鑳戒綋鍚嶇О"
+                    style="width: 200px; margin-top: 10px"
+                  />
+                </a-collapse-item>
+                <a-collapse-item header="AI妯″瀷閰嶇疆" key="1">
+                  <a-form-item field="llm_id" label="妯″瀷">
+                    <a-space direction="vertical" size="large">
+                      <a-select
+                        :size="'large'"
+                        field="llm_id"
+                        v-model="form.llm_id"
+                        :style="{ width: '25rem' }"
+                        placeholder="璇烽�夋嫨 ..."
                       >
-                        <a-option
-                          v-for="obj in item"
-                          :key="obj.fid"
-                          :disabled="!obj.available"
-                          :value="obj.llm_id"
+                        <a-optgroup
+                          :label="index"
+                          v-for="(item, index) in modelList"
+                          :key="index"
                         >
-                          {{ obj.llm_name }}
-                        </a-option>
-                      </a-optgroup>
-                    </a-select>
-                  </a-space>
-                </a-form-item>
+                          <a-option
+                            v-for="obj in item"
+                            :key="obj.fid"
+                            :disabled="!obj.available"
+                            :value="obj.llm_id"
+                          >
+                            {{ obj.llm_name }}
+                          </a-option>
+                        </a-optgroup>
+                      </a-select>
+                    </a-space>
+                  </a-form-item>
                 </a-collapse-item>
                 <a-collapse-item header="寮�鍦哄紩瀵�" :key="'2'" disabled>
                 </a-collapse-item>
-                <a-collapse-item  header="鐭ヨ瘑搴�" key="3">
+                <a-collapse-item header="鐭ヨ瘑搴�" key="3">
                   <a-form-item field="kb_ids" label="鐭ヨ瘑搴�">
                     <a-select
                       v-model="form.kb_ids"
@@ -72,7 +111,7 @@
                         v-for="item in tabs"
                         :key="item.id"
                         :value="item.id"
-                      >{{ item.name }}</a-option
+                        >{{ item.name }}</a-option
                       >
                     </a-select>
                   </a-form-item>
@@ -119,8 +158,8 @@
   import useLoading from '@/hooks/loading';
   import { dialogSet } from '@/api/Agent';
   import { Message } from '@arco-design/web-vue';
-  import EventBus from "@/utils/EventBus";
-  import sessionAction  from "@/views/dmx/IntelligentAgent/components/sessionAction.vue";
+  import EventBus from '@/utils/EventBus';
+  import sessionAction from '@/views/dmx/IntelligentAgent/components/sessionAction.vue';
   const { setLoading } = useLoading(true);
   const props = defineProps(['typeAngint', 'formData']);
   const visible = ref(false);
@@ -193,7 +232,7 @@
 
   const handleSubmit = async ({ values, errors }) => {
     // console.log('values:', values, '\nerrors:', errors)
-    if(!errors){
+    if (!errors) {
       let title = '鍒涘缓鎴愬姛';
       let formNew = { ...form };
       if (props.typeAngint == 'edit') {
@@ -224,9 +263,9 @@
     visible.value = true;
     nextTick(() => {
       Object.assign(form, data);
-      console.log(form,'浼犲��');
+      console.log(form, '浼犲��');
       system.value = form.prompt_config.system;
-      if(tabs.value && tabs.value.length>0){
+      if (tabs.value && tabs.value.length > 0) {
         form.kb_ids = [tabs.value[0].id];
       }
     });
@@ -325,8 +364,8 @@
       line-height: 40px;
     }
   }
-  :deep(.arco-textarea-wrapper.arco-textarea-disabled){
-      background: var(--color-bg-2);
-      color: var(--color-text-1);
+  :deep(.arco-textarea-wrapper.arco-textarea-disabled) {
+    background: var(--color-bg-2);
+    color: var(--color-text-1);
   }
 </style>
diff --git a/src/views/dmx/model/components/addPageModel.vue b/src/views/dmx/model/components/addPageModel.vue
index eda4416..54f122d 100644
--- a/src/views/dmx/model/components/addPageModel.vue
+++ b/src/views/dmx/model/components/addPageModel.vue
@@ -28,7 +28,7 @@
               <a-select v-model="form[item.key]" placeholder="璇烽�夋嫨">
                 <a-option
                   v-for="(list, v) in item.options"
-                  :value="list"
+                  :value="v"
                   :label="v"
                 ></a-option>
               </a-select>
diff --git a/src/views/dmx/model/components/addTableName.vue b/src/views/dmx/model/components/addTableName.vue
index 7ae55bd..eb7dfe5 100644
--- a/src/views/dmx/model/components/addTableName.vue
+++ b/src/views/dmx/model/components/addTableName.vue
@@ -27,8 +27,8 @@
         >
           <a-option
             v-for="(item, index) in modalList"
-            :value="index"
-            :label="index"
+            :value="item.name"
+            :label="item.name"
             :disabled="item.added"
           ></a-option>
         </a-select>
@@ -43,6 +43,7 @@
         <a-textarea
           v-model="form.tags"
           placeholder="璇疯緭鍏ユā鍨嬫弿杩�"
+          :max-length="50"
           allow-clear
         />
       </a-form-item>
@@ -85,7 +86,7 @@
     computed,
   } from 'vue';
   import {
-    modelmyLlms,
+    getFactories,
     addLlmFactory,
     getLlmDetail,
     editLlmFactory,
@@ -233,7 +234,7 @@
   };
   const modalList = ref([]);
   const queryModel = async () => {
-    const res = await modelmyLlms();
+    const res = await getFactories();
     modalList.value = res.data;
   };
   queryModel();
diff --git a/src/views/dmx/model/index.vue b/src/views/dmx/model/index.vue
index 6c3bde1..ef1335c 100644
--- a/src/views/dmx/model/index.vue
+++ b/src/views/dmx/model/index.vue
@@ -30,11 +30,8 @@
                   <a-scrollbar
                     style="height: calc(100vh - 320px); overflow: auto"
                   >
-                    <div
-                      style="display: flex; flex-wrap: wrap"
-                      class="card_content"
-                    >
-                      <div class="card-wrap">
+                    <div class="card_content">
+                      <div class="card-wrap content_top">
                         <div class="card_wrap_box">
                           <div class="card_wrap_box_img">
                             <img
@@ -60,6 +57,11 @@
                           </a-card>
                           <div class="arco-btn-group">
                             <a-space class="btn-group">
+                              <div class="create_time">
+                                鍒涘缓鏃堕棿锛�
+                                <span> {{ item.create_date }} </span>
+                              </div>
+
                               <!-- <editModel></editModel> -->
                               <a-button @click="handleDeleteModel(item, 1)">
                                 鍒犻櫎
@@ -74,46 +76,51 @@
                           </div>
                         </div>
                       </div>
-                      <div
-                        class="card-wrap"
-                        v-for="(list, index) of item.llm"
-                        :key="index"
-                      >
-                        <div class="card_wrap_box">
-                          <div class="card_wrap_box_img">
-                            <img
-                              :style="{
-                                width: '100%',
-                              }"
-                              alt="鏆傛棤鍥剧墖"
-                              :src="list.logo ? httpUrl + list.logo : pdfImg"
-                            />
-                            <!--   src="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/a20012a2d4d5b9db43dfc6a01fe508c0.png~tplv-uwbnlip3yd-webp.webp" -->
-                          </div>
-                          <a-card :bordered="false" hoverable>
-                            <div class="arco-card-body-content">
-                              <div class="arco-card-body-content-title">
-                                {{ list.name }}
-                              </div>
-                              <div class="arco-card-body-content-dec">{{
-                                list.type
-                              }}</div>
+                      <div class="subset_list">
+                        <div
+                          class="card-wrap"
+                          v-for="(list, index) of item.llm"
+                          :key="index"
+                        >
+                          <div class="card_wrap_box">
+                            <div class="card_wrap_box_img">
+                              <img
+                                :style="{
+                                  width: '100%',
+                                }"
+                                alt="鏆傛棤鍥剧墖"
+                                :src="list.logo ? httpUrl + list.logo : pdfImg"
+                              />
                             </div>
-                          </a-card>
-                          <div class="arco-btn-group">
-                            <a-space class="btn-group">
-                              <a-button @click="handleDeleteModel(list)">
-                                鍒犻櫎
-                              </a-button>
-                              <!-- <a-button
+                            <a-card :bordered="false" hoverable>
+                              <div class="arco-card-body-content">
+                                <div class="arco-card-body-content-title">
+                                  {{ list.name }}
+                                </div>
+                                <div class="arco-card-body-content-dec">{{
+                                  list.type
+                                }}</div>
+                              </div>
+                            </a-card>
+                            <div class="arco-btn-group">
+                              <a-space class="btn-group">
+                                <div class="create_time_list">
+                                  鍒涘缓鏃堕棿锛�
+                                  <span> {{ list.create_date }} </span>
+                                </div>
+                                <a-button @click="handleDeleteModel(list)">
+                                  鍒犻櫎
+                                </a-button>
+                                <!-- <a-button
                                 type="primary"
                                 @click="handleEditModel(list)"
                               >
                                 缂栬緫
                               </a-button> -->
 
-                              <!-- <editModel></editModel> -->
-                            </a-space>
+                                <!-- <editModel></editModel> -->
+                              </a-space>
+                            </div>
                           </div>
                         </div>
                       </div>
@@ -245,7 +252,6 @@
   };
   //缂栬緫妯″瀷瀛愮被
   const handleEditModel = (val, type) => {
-    console.log(val, 6766);
     if (type == 1) {
       tabShow.value = true;
       editList.value = val;
@@ -263,6 +269,7 @@
 
   //鍒犻櫎妯″瀷
   const handleDeleteModel = (val, type) => {
+    const factory = tabKey.value;
     if (type == 1) {
       handleDelete(val);
     } else {
@@ -272,7 +279,6 @@
         okText: '纭畾',
         cancelText: '鍙栨秷',
         onOk: async () => {
-          const factory = tabKey.value;
           const res = await deleteLlm({
             llm_factory: tabKey.value,
             llm_name: val.name,
@@ -291,17 +297,15 @@
 
   //鐖剁骇妯″瀷
   const handleDelete = async (key: any) => {
-    console.log(tabData.value[key]);
-    if (tabData.value[key].llm.length > 0) {
+    if (tabData.value[key] && tabData.value[key].llm.length > 0) {
       Message.error('璇峰厛鍒犻櫎瀛愭ā鍨�');
       return;
     }
-    if (key !== 'key') {
-      const res = await deleteLlmFactory(key);
-      if ((res as any).code == 200) {
-        Reflect.deleteProperty(tabData.value, key);
-        queryModel();
-      }
+
+    const res = await deleteLlmFactory(tabKey.value);
+    if ((res as any).code == 200) {
+      // Reflect.deleteProperty(tabData.value, tabKey.value);
+      queryModel();
     }
   };
 
@@ -340,6 +344,7 @@
     loading.value = true;
     tabData.value = Object.assign({}, tabData.value, res.data);
     tabData.value = filterObject(tabData.value, 1);
+
     tabKey.value = Object.keys(tabData.value)[0];
     await getFactory();
   };
@@ -477,6 +482,9 @@
       font-weight: 400;
     }
   }
+  .content_top {
+    border-bottom: 1px solid #f0f0f0 !important;
+  }
   .card_content {
     .card_wrap_box_img {
       // min-height: 200px;
@@ -488,12 +496,25 @@
         object-fit: cover; /* 涓嶄細鍙樺舰锛屼絾鍙兘瑁佸壀鍥剧墖 */
       }
     }
+    .subset_list {
+      display: flex;
+      flex-direction: row;
+      flex-wrap: wrap;
+    }
     .card_wrap_box {
       // position: relative;
       .arco-btn-group {
         position: absolute;
         right: 10px;
         top: 87%;
+        .create_time {
+          text-align: left;
+          width: 155px;
+        }
+        .create_time_list {
+          text-align: left;
+          width: 223px;
+        }
       }
     }
   }
@@ -510,6 +531,7 @@
       transform: translateY(-4px);
       // box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.1);
     }
+
     :deep(.arco-card) {
       height: 100%;
       border-radius: 4px;
diff --git a/yarn.lock b/yarn.lock
index 2b1e84c..758b2fe 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5580,7 +5580,7 @@
 
 moment@^2.30.1:
   version "2.30.1"
-  resolved "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz"
+  resolved "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
   integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
 
 mozjpeg@^7.0.0:

--
Gitblit v1.8.0