zhangxiao
2024-08-16 5efb195a3e0c956c4b254408a8868368135eb773
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>
                              </a-button> -->
                              <!-- <editModel></editModel> -->
                            </a-space>
                                <!-- <editModel></editModel> -->
                              </a-space>
                            </div>
                          </div>
                        </div>
                      </div>
@@ -131,7 +138,11 @@
                />
              </div> -->
              <div>
                <a-button type="primary" @click="handleAddModel">
                <a-button
                  type="primary"
                  @click="handleAddModel"
                  :disabled="addBtn"
                >
                  <template #icon>
                    <icon-plus />
                  </template>
@@ -174,6 +185,7 @@
    modelmyLlms,
    deleteLlm,
    deleteLlmFactory,
    getFactoryDetail,
  } from '@/api/model';
  import { Modal, Message } from '@arco-design/web-vue';
  import { userModelState } from '@/store';
@@ -182,6 +194,7 @@
  const modelStore = userModelState();
  let count = 5;
  const addBtn = ref(false);
  const activeKey = ref(1);
  const data = ref([
    {
@@ -212,8 +225,9 @@
  const modalList = ref({});
  const tabKey = ref('key');
  const changeTabs = (val) => {
  const changeTabs = async (val) => {
    tabKey.value = val;
    await getFactory();
  };
  const httpUrl = modelStore.hrefUrl;
@@ -238,7 +252,6 @@
  };
  //编辑模型子类
  const handleEditModel = (val, type) => {
    console.log(val, 6766);
    if (type == 1) {
      tabShow.value = true;
      editList.value = val;
@@ -256,6 +269,7 @@
  //删除模型
  const handleDeleteModel = (val, type) => {
    const factory = tabKey.value;
    if (type == 1) {
      handleDelete(val);
    } else {
@@ -265,7 +279,6 @@
        okText: '确定',
        cancelText: '取消',
        onOk: async () => {
          const factory = tabKey.value;
          const res = await deleteLlm({
            llm_factory: tabKey.value,
            llm_name: val.name,
@@ -284,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();
    }
  };
@@ -332,12 +343,16 @@
    modalList.value = res.data;
    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();
  };
  queryModel();
  //返回满足条件的对象
  const filterObject = (obj, threshold) => {
    return Object.keys(obj)
      .filter((key) => obj[key] > threshold)
      .filter((key) => obj[key].added == 1)
      .reduce((result, key) => {
        result[key] = obj[key];
        return result;
@@ -347,6 +362,18 @@
  const refreshParentMethod = () => {
    queryModel();
    // 这里执行需要的操作
  };
  const getFactory = async () => {
    const { data } = await getFactoryDetail({
      factory_name: tabKey.value,
    });
    if (data.set_type == 2) {
      addBtn.value = true;
    } else {
      addBtn.value = false;
    }
  };
</script>
@@ -455,6 +482,9 @@
      font-weight: 400;
    }
  }
  .content_top {
    border-bottom: 1px solid #f0f0f0 !important;
  }
  .card_content {
    .card_wrap_box_img {
      // min-height: 200px;
@@ -466,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;
        }
      }
    }
  }
@@ -488,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;