| | |
| | | <a-row justify="space-between"> |
| | | <a-col :span="24" class="table_add_clore" v-if="loading"> |
| | | <a-tabs |
| | | :default-active-key="tabKey" |
| | | type="line" |
| | | :default-active-key="tabKey" |
| | | v-model:activeKey="tabKey" |
| | | :editable="true" |
| | | @tab-click="changeTabs" |
| | | @add="handleAdd" |
| | | @delete="handleDelete" |
| | | show-add-button |
| | | auto-switch |
| | | > |
| | | <a-tab-pane |
| | | v-for="(item, index) in tabData" |
| | |
| | | style="height: calc(100vh - 320px); overflow: auto" |
| | | > |
| | | <div class="card_content"> |
| | | <div class="card-wrap content_top"> |
| | | <div class="content_top"> |
| | | <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 class="wrap_box_add"> |
| | | <a-button |
| | | type="primary" |
| | | @click="handleAddModel" |
| | | :disabled="addBtn" |
| | | > |
| | | <template #icon> |
| | | <icon-plus /> |
| | | </template> |
| | | 添加 |
| | | </a-button> |
| | | </div> --> |
| | | <div class="box_user_content"> |
| | | <div class="box_usr_img"> |
| | | <div class="card_wrap_box_img"> |
| | | <img |
| | | alt="暂无图片" |
| | | :src=" |
| | | item.logo ? httpUrl + item.logo : pdfImg |
| | | " |
| | | /> |
| | | </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"> |
| | | 创建时间: |
| | | <span> {{ item.create_date }} </span> |
| | | </div> |
| | | <div class="arco-content-title"> |
| | | <div class="title_name"> {{ item.tags }}</div> |
| | | |
| | | <!-- <editModel></editModel> --> |
| | | <a-button @click="handleDeleteModel(item, 1)"> |
| | | 删除 |
| | | </a-button> |
| | | <a-button |
| | | type="primary" |
| | | @click="handleEditModel(item, 1)" |
| | | > |
| | | 编辑 |
| | | </a-button> |
| | | </a-space> |
| | | <div class="create_time"> |
| | | 创建时间: |
| | | <span> {{ item.create_date }} </span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="box_user_btn"> |
| | | <a-space class="btn-group"> |
| | | <!-- <editModel></editModel> --> |
| | | <a-button |
| | | type="primary" |
| | | @click="handleAddModel" |
| | | :disabled="addBtn" |
| | | > |
| | | <template #icon> |
| | | <icon-plus /> |
| | | </template> |
| | | 添加 |
| | | </a-button> |
| | | <a-button |
| | | type="outline" |
| | | @click="handleEditModel(item, 1)" |
| | | > |
| | | 编辑 |
| | | </a-button> |
| | | <a-button |
| | | @click="handleDeleteModel(item, 1)" |
| | | class="btn_delete" |
| | | > |
| | | 删除 |
| | | </a-button> |
| | | </a-space> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="subset_list"> |
| | | <div v-if="item.llm?.length > 0" class="no_data"></div> |
| | | <div class="subset_list" v-if="item.llm?.length > 0"> |
| | | <div |
| | | class="card-wrap" |
| | | v-for="(list, index) of item.llm" |
| | |
| | | </a-tabs> |
| | | </a-col> |
| | | <div> </div> |
| | | <div class="box_right" v-if="Object.keys(tabData).length > 0"> |
| | | <!-- <div class="search_input"> |
| | | <a-input-search |
| | | :placeholder="$t('cardList.searchInput.placeholder')" |
| | | style="width: 240px" |
| | | /> |
| | | </div> --> |
| | | <!-- <div class="box_right" v-if="Object.keys(tabData).length > 0"> |
| | | <div> |
| | | <a-button |
| | | type="primary" |
| | |
| | | 添加 |
| | | </a-button> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | </a-row> |
| | | </a-card> |
| | | </a-col> |
| | |
| | | const isDeleteDialogVisible = ref(false); //删除提醒 |
| | | |
| | | const modalList = ref({}); |
| | | const tabKey = ref('key'); |
| | | const tabKey = ref(''); |
| | | const changeTabs = async (val) => { |
| | | tabKey.value = val; |
| | | await getFactory(); |
| | |
| | | }); |
| | | |
| | | if ((res as any).code == 0) { |
| | | queryModel(); |
| | | tabKey.value = factory; |
| | | await queryModel(''); |
| | | } else { |
| | | } |
| | | }, |
| | |
| | | const res = await deleteLlmFactory(tabKey.value); |
| | | if ((res as any).code == 200) { |
| | | // Reflect.deleteProperty(tabData.value, tabKey.value); |
| | | queryModel(); |
| | | |
| | | await queryModel(null); |
| | | |
| | | Message.success('删除成功'); |
| | | } |
| | | }; |
| | |
| | | name: '', |
| | | }); |
| | | const handleOk = () => { |
| | | count += 1; |
| | | formRef.value?.validate().then((res) => { |
| | | if (res) { |
| | | return; |
| | | } |
| | | data.value = data.value.concat({ |
| | | key: count, |
| | | title: `${form.name}`, |
| | | content: ``, |
| | | }); |
| | | visible.value = false; |
| | | activeKey.value = count; |
| | | }); |
| | | nextTick(() => { |
| | | visible.value = true; |
| | | }); |
| | | return false; |
| | | // count += 1; |
| | | // formRef.value?.validate().then((res) => { |
| | | // if (res) { |
| | | // return; |
| | | // } |
| | | // data.value = data.value.concat({ |
| | | // key: count, |
| | | // title: `${form.name}`, |
| | | // content: ``, |
| | | // }); |
| | | // visible.value = false; |
| | | // activeKey.value = count; |
| | | // }); |
| | | // nextTick(() => { |
| | | // visible.value = true; |
| | | // }); |
| | | // return false; |
| | | }; |
| | | |
| | | //获取模型列表 |
| | | const loading = ref(false); |
| | | const queryModel = async () => { |
| | | const queryModel = async (name) => { |
| | | const res = await modelmyLlms(); |
| | | modalList.value = res.data; |
| | | loading.value = true; |
| | | // tabData.value = Object.assign({}, tabData.value, res.data); |
| | | |
| | | tabData.value = filterObject(res.data, 1); |
| | | tabKey.value = Object.keys(tabData.value)[0]; |
| | | await filterObject(res.data, 1, name); |
| | | |
| | | await getFactory(); |
| | | }; |
| | | queryModel(); |
| | | queryModel(null); |
| | | //返回满足条件的对象 |
| | | const filterObject = (obj, threshold) => { |
| | | return Object.keys(obj) |
| | | const filterObject = (obj, threshold, name) => { |
| | | tabData.value = ''; |
| | | tabKey.value = ''; |
| | | const objs = Object.keys(obj) |
| | | .filter((key) => obj[key].added == 1) |
| | | .reduce((result, key) => { |
| | | result[key] = obj[key]; |
| | | return result; |
| | | }, {}); |
| | | |
| | | tabData.value = objs; |
| | | if (name) { |
| | | tabKey.value = name; |
| | | } else { |
| | | tabKey.value = Object.keys(tabData.value)[0]; |
| | | } |
| | | console.log(tabKey.value, 6766); |
| | | }; |
| | | |
| | | const refreshParentMethod = async (name) => { |
| | | // console.log(name, 678776); |
| | | await queryModel(); |
| | | |
| | | await queryModel(name); |
| | | // tabKey.value = name; |
| | | // 这里执行需要的操作 |
| | | }; |
| | |
| | | } else { |
| | | addBtn.value = false; |
| | | } |
| | | |
| | | // if (!name) { |
| | | // tabKey.value = Object.keys(tabData.value)[0]; |
| | | // } else { |
| | | // tabKey.value = name; |
| | | // } |
| | | console.log(tabKey.value, 9787); |
| | | }; |
| | | </script> |
| | | |
| | |
| | | } |
| | | } |
| | | .content_top { |
| | | border-bottom: 1px solid #f0f0f0 !important; |
| | | border-radius: 18px; |
| | | border: 1px solid #eaecf0; |
| | | background: #e6e7eb; |
| | | box-shadow: 0 1px 2px #1018280d; |
| | | .card_wrap_box { |
| | | padding: 10px 20px; |
| | | |
| | | .wrap_box_add { |
| | | // text-align: right; |
| | | } |
| | | .card_wrap_box_img { |
| | | width: 60px; |
| | | height: 60px; |
| | | border-radius: 50%; |
| | | |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | border-radius: 50%; |
| | | } |
| | | } |
| | | .box_user_content { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .box_usr_img { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .arco-content-title { |
| | | line-height: 34px; |
| | | margin-left: 20px; |
| | | .title_name { |
| | | font-size: 16px; |
| | | color: #333; |
| | | } |
| | | } |
| | | } |
| | | .box_user_btn { |
| | | text-align: right; |
| | | // .btn_delete { |
| | | // margin-left: 10px; |
| | | // } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .content_bottom { |
| | | margin-top: 20px; |
| | | .card_content { |
| | | .card_wrap_box { |
| | | padding: 20px; |
| | | .card_wrap_box_img { |
| | | width: 80px; |
| | | height: 80px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .card_content { |
| | | .card_wrap_box_img { |
| | |
| | | display: flex; |
| | | flex-direction: row; |
| | | flex-wrap: wrap; |
| | | |
| | | // border-top: 1px solid #f0f0f0; |
| | | } |
| | | .no_data { |
| | | border-top: 1px solid #f0f0f0; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | margin-top: 10px; |
| | | font-size: 16px; |
| | | color: #333; |
| | | } |
| | | .card_wrap_box { |
| | | // position: relative; |