From a53981aea70d2247120954a96f9f462c6bad936b Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期一, 12 八月 2024 16:52:54 +0800
Subject: [PATCH] 修改智能体的bug问题

---
 src/views/dmx/model/index.vue |  288 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 140 insertions(+), 148 deletions(-)

diff --git a/src/views/dmx/model/index.vue b/src/views/dmx/model/index.vue
index 0a55621..bf2602d 100644
--- a/src/views/dmx/model/index.vue
+++ b/src/views/dmx/model/index.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="container">
-    <Breadcrumb :items="['澶фā鍨�', '澶фā鍨嬬鐞�']" />
+    <Breadcrumb :items="['澶фā鍨�', '妯″瀷绠$悊']" />
 
     <a-row :gutter="20" align="stretch">
       <a-col :span="24">
@@ -27,70 +27,76 @@
                   :title="index"
                   :closable="Object.keys(tabData).length >= 4"
                 >
-                  <div
-                    style="display: flex; flex-wrap: wrap"
-                    class="card_content"
+                  <a-scrollbar
+                    style="height: calc(100vh - 320px); overflow: auto"
                   >
-                    <div class="card-wrap">
-                      <div class="card_wrap_box">
-                        <div class="card_wrap_box_img">
-                          <img
-                            :style="{
-                              width: '100%',
-                            }"
-                            alt="dessert"
-                            :src="item.logo"
-                          />
-                        </div>
-                        <a-card :bordered="false" hoverable>
-                          <div class="arco-card-body-content">
-                            <div
-                              class="arco-card-body-content-title"
-                              style="word-wrap: break-word"
-                            >
-                              {{ item.tags }}
-                            </div>
-                            <!-- <div class="arco-card-body-content-dec">{{
+                    <div
+                      style="display: flex; flex-wrap: wrap"
+                      class="card_content"
+                    >
+                      <div class="card-wrap">
+                        <div class="card_wrap_box">
+                          <div class="card_wrap_box_img">
+                            <img
+                              :style="{
+                                width: '100%',
+                              }"
+                              alt="鏆傛棤鍥剧墖"
+                              :src="item.logo ? httpUrl + item.logo : pdfImg"
+                            />
+                          </div>
+                          <a-card :bordered="false" hoverable>
+                            <div class="arco-card-body-content">
+                              <div
+                                class="arco-card-body-content-title"
+                                style="word-wrap: break-word"
+                              >
+                                {{ item.tags }}
+                              </div>
+                              <!-- <div class="arco-card-body-content-dec">{{
                             list.type
                           }}</div> -->
-                          </div>
+                            </div>
+                          </a-card>
                           <div class="arco-btn-group">
                             <a-space class="btn-group">
                               <!-- <editModel></editModel> -->
-                              <a-button type="primary" @click="handleEditModel">
+                              <a-button
+                                type="primary"
+                                @click="handleEditModel(item, 1)"
+                              >
                                 缂栬緫
                               </a-button>
                             </a-space>
                           </div>
-                        </a-card>
-                      </div>
-                    </div>
-                    <div
-                      class="card-wrap"
-                      v-for="(list, index) of item.llm"
-                      :key="index"
-                    >
-                      <div class="card_wrap_box">
-                        <div>
-                          <img
-                            :style="{
-                              width: '100%',
-                              transform: 'translateY(-20px)',
-                            }"
-                            alt="dessert"
-                            :src="list.logo"
-                          />
-                          <!--   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>
+                      <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>
+                          </a-card>
                           <div class="arco-btn-group">
                             <a-space class="btn-group">
                               <a-button @click="handleDeleteModel(list)">
@@ -106,28 +112,24 @@
                               <!-- <editModel></editModel> -->
                             </a-space>
                           </div>
-                        </a-card>
+                        </div>
                       </div>
                     </div>
-                  </div>
+                  </a-scrollbar>
                 </a-tab-pane>
               </a-tabs>
             </a-col>
             <div> </div>
             <div class="box_right">
-              <div class="search_input">
+              <!-- <div class="search_input">
                 <a-input-search
                   :placeholder="$t('cardList.searchInput.placeholder')"
                   style="width: 240px"
                 />
-              </div>
+              </div> -->
               <div>
                 <!-- <addModel></addModel> -->
-                <a-button
-                  type="primary"
-                  :loading="loading2"
-                  @click="handleAddModel"
-                >
+                <a-button type="primary" @click="handleAddModel">
                   <template #icon>
                     <icon-plus />
                   </template>
@@ -139,29 +141,29 @@
         </a-card>
       </a-col>
     </a-row>
+    <!-- 娣诲姞妯″瀷 -->
+    <addPageModel
+      v-model:show="show"
+      :task_id="task_id"
+      :type="modelType"
+      :title="title"
+      :editList="editList"
+      @refresh-parent="refreshParentMethod"
+      v-if="show"
+    ></addPageModel>
+    <!-- 娣诲姞tab妯″紡 -->
+    <addTableName
+      v-model:tabShow="tabShow"
+      :nameList="editList"
+      :title="title"
+      @refresh-parent="refreshParentMethod"
+      v-if="tabShow"
+    ></addTableName>
   </div>
-  <!-- 娣诲姞妯″瀷 -->
-  <addPageModel
-    v-model:show="show"
-    :task_id="task_id"
-    :type="modelType"
-    :title="title"
-    :editList="editList"
-    @refresh-parent="refreshParentMethod"
-    v-if="show"
-  ></addPageModel>
-  <!-- 娣诲姞tab妯″紡 -->
-  <addTableName
-    v-model:tabShow="tabShow"
-    :nameList="editList"
-    @refresh-parent="refreshParentMethod"
-    v-if="tabShow"
-  ></addTableName>
 </template>
 
 <script lang="ts" setup>
   import { ref, reactive, nextTick } from 'vue';
-  import addModel from '@/views/dmx/model/components/addModel.vue';
   import editModel from '@/views/dmx/model/components/editModel.vue';
   import addPageModel from './components/addPageModel.vue';
   import addTableName from './components/addTableName.vue';
@@ -172,7 +174,11 @@
     deleteLlmFactory,
   } from '@/api/model';
   import { Modal, Message } from '@arco-design/web-vue';
+  import { userModelState } from '@/store';
 
+  import pdfImg from '@/assets/images/icon-chart.png';
+
+  const modelStore = userModelState();
   let count = 5;
   const activeKey = ref(1);
   const data = ref([
@@ -200,14 +206,14 @@
   });
 
   const isDeleteDialogVisible = ref(false); //鍒犻櫎鎻愰啋
-  const apiUrl = ref('http://127.0.0.1:5173');
-  // const httpUrl = import.meta.env.VITE_API_BASE_URL;
-  // console.log(apiUrl.value, 777);
+
   const modalList = ref({});
   const tabKey = ref('key');
   const changeTabs = (val) => {
     tabKey.value = val;
   };
+
+  const httpUrl = modelStore.hrefUrl;
   const show = ref(false);
   const tabShow = ref(false);
   const title = ref('娣诲姞妯″紡');
@@ -215,24 +221,26 @@
   const modelType = ref(1);
   const handleAdd = () => {
     tabShow.value = true;
+    title.value = '娣诲姞妯″瀷';
     editList.value.llm_factory = tabKey.value;
   };
-  const editList = ref({ llm_factory: '' });
+  const editList = ref<any>({ llm_factory: '' });
   //澧炲姞妯″瀷瀛愮被
   const handleAddModel = () => {
-    if (tabKey.value == 'key') {
-      tabShow.value = true;
-    } else {
-      modelType.value = 2;
-      editList.value.llm_factory = tabKey.value;
-      show.value = true;
-      title.value = '娣诲姞妯″紡';
-    }
+    modelType.value = 2;
+    editList.value = [{ llm_factory: '' }];
+    editList.value.llm_factory = tabKey.value;
+    show.value = true;
+    title.value = '娣诲姞妯″紡';
   };
   //缂栬緫妯″瀷瀛愮被
-  const handleEditModel = (val) => {
-    if (tabKey.value == 'key') {
+  const handleEditModel = (val, type) => {
+    console.log(val, 6766);
+    if (type == 1) {
       tabShow.value = true;
+      editList.value = val;
+      title.value = '缂栬緫妯″瀷';
+      editList.value.llm_factory = tabKey.value;
     } else {
       modelType.value = 2;
       task_id.value = val.id;
@@ -269,15 +277,22 @@
 
   //鐖剁骇妯″瀷
   const handleDelete = async (key: any) => {
-    console.log(key, 45455);
-    // tabData.value = tabData.value.filter((item) => item.key !== key);
-    Reflect.deleteProperty(tabData.value, key);
-    await deleteLlmFactory(key);
-    queryModel();
+    console.log(tabData.value[key]);
+    if (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 visible = ref(false);
-  const formRef = ref(null);
+  const formRef = ref();
 
   const form = reactive({
     size: 'medium',
@@ -302,16 +317,6 @@
     });
     return false;
   };
-  // const handleCancel = () => {
-  //   formRef.value.resetFields();
-  //   visible.value = false;
-  // };
-  // const handleSubmit = ({ values, errors }) => {
-  //   this.$refs.formRef.validate().then((res, a, b) => {
-  //     debugger;
-  //     console.log('values', values);
-  //   });
-  // };
 
   //鑾峰彇妯″瀷鍒楄〃
   const loading = ref(false);
@@ -346,6 +351,7 @@
       font-size: 14px;
     }
   }
+
   :deep(.arco-list-col) {
     display: flex;
     flex-direction: row;
@@ -378,6 +384,10 @@
       }
     }
   }
+  :deep(.arco-tabs-nav-tab) {
+    flex: none;
+    width: 60%;
+  }
   .table_add_clore {
     :deep(.arco-tabs-nav-add-btn .arco-icon-hover::before) {
       top: 50%;
@@ -392,9 +402,9 @@
     :deep(.arco-tabs-nav-add-btn .arco-icon-hover .arco-icon) {
       color: #fff;
     }
-    :deep(.arco-tabs-nav) {
-      max-width: 60%;
-    }
+    // :deep(.arco-tabs-nav) {
+    //   max-width: 60%;
+    // }
 
     :deep(.arco-icon-hover::before) {
       top: 50%;
@@ -427,48 +437,30 @@
     }
   }
   .card_content {
-    position: relative;
-    .arco-btn-group {
-      position: absolute;
-      right: 10px;
-      top: 100px;
-    }
     .card_wrap_box_img {
-      min-height: 200px;
-      max-height: 240px;
+      // min-height: 200px;
+      height: 200px;
+      width: 100%;
+      img {
+        width: 100%; /* 鎴栬�呭叾浠栧浐瀹氬搴� */
+        height: 100%; /* 鎴栬�呭叾浠栧浐瀹氶珮搴� */
+        object-fit: cover; /* 涓嶄細鍙樺舰锛屼絾鍙兘瑁佸壀鍥剧墖 */
+      }
+    }
+    .card_wrap_box {
+      // position: relative;
+      .arco-btn-group {
+        position: absolute;
+        right: 10px;
+        top: 87%;
+      }
     }
   }
 
   .card-wrap {
     width: 320px;
     height: 350px;
-    margin: 30px;
-    transition: all 0.3s;
-    border: 1px solid var(--color-neutral-3);
-    border-radius: 4px;
-    position: relative;
-    &:hover {
-      transform: translateY(-4px);
-      // box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.1);
-    }
-  }
-  .card-wrap {
-    width: 320px;
-    height: 350px;
-    margin: 30px;
-    transition: all 0.3s;
-    border: 1px solid var(--color-neutral-3);
-    border-radius: 4px;
-    position: relative;
-    &:hover {
-      transform: translateY(-4px);
-      // box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.1);
-    }
-  }
-  .card-wrap {
-    width: 320px;
-    height: 350px;
-    margin: 30px;
+    margin: 20px 30px;
     transition: all 0.3s;
     border: 1px solid var(--color-neutral-3);
     border-radius: 4px;

--
Gitblit v1.8.0