| | |
| | | /> |
| | | <addKnow @getknowledge="getknowledge" @getKbdetail="getKbdetail"></addKnow> |
| | | </div> |
| | | <div class="lf-container-down"> |
| | | <a-scrollbar style="height:56rem;overflow: auto;"> |
| | | <a-spin :loading="listloading" class="lf-container-down"> |
| | | <a-scrollbar style="overflow: auto;" :style="{height: documentHeight + 70 + 'px'}"> |
| | | <div |
| | | class="tab" |
| | | v-for="(tab, index) in tabs" |
| | |
| | | > |
| | | {{ tab.name }} |
| | | <a-popover position="bl"> |
| | | <icon-more :style="{position: 'absolute',top:'10px',right:'20px'}"/> |
| | | <icon-more :style="{position: 'absolute',top:'10px',right:'10px'}"/> |
| | | <template #content> |
| | | <a-popconfirm content="确定删除吗?" @ok="deleteKnowledge(tab.id)" type="warning"> |
| | | <span style="cursor: pointer;color: #0960bd;font-size: 12px"><icon-delete />删除</span> |
| | | </a-popconfirm> |
| | | <!-- <a-popconfirm content="确定删除吗?" @ok="deleteKnowledge(tab.id)" type="warning">--> |
| | | <!-- <span style="cursor: pointer;color: #4977ba;font-size: 12px"><icon-delete style="font-size: 14px"/>删除</span>--> |
| | | <!-- </a-popconfirm>--> |
| | | <span style="cursor: pointer;color: #4977ba;font-size: 12px" @click="deleteKnowledge(tab.id)"><icon-delete style="font-size: 14px" />删除</span> |
| | | </template> |
| | | </a-popover> |
| | | </div> |
| | | </a-scrollbar> |
| | | </div> |
| | | </a-spin> |
| | | </div> |
| | | <div class="rt-container" v-if="tabs.length > 0"> |
| | | <a-tabs :activeKey="activeKey" @change="handleTabChange"> |
| | | <div class="rt-container" v-if="tabs.length > 0" > |
| | | <a-tabs :active-key="activeKey" @change="handleTabChange"> |
| | | <a-tab-pane key="1" :title= "t('dmx.list.DataSet')"> |
| | | <div class="rt-container-main"> |
| | | <div class="rt-container-main" :style="{height: documentHeight + 70 + 'px'}"> |
| | | <a-card ref="account" class="general-card" title="" style="padding-top: 20px"> |
| | | <a-row> |
| | | <a-col :flex="1" :span="12"> |
| | |
| | | :bordered="false" |
| | | :size="size" |
| | | @page-change="onPageChange" |
| | | :scroll="{ y: 580 }" |
| | | :max-height='documentHeight' |
| | | :scroll="{ y: documentHeight }" |
| | | > |
| | | <template #name="{ record }"> |
| | | <!-- <icon-file style="color: #0960bd;margin-right: 4px;" />--> |
| | |
| | | </div> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" :title="t('dmx.list.test')"> |
| | | <div class="rt-container-main"> |
| | | <div class="rt-container-main" :style="{height: documentHeight + 70 + 'px'}"> |
| | | <test ref="testForm"></test> |
| | | </div> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="3" :title="t('dmx.list.disposition')"> |
| | | <div class="rt-container-main"> |
| | | <config ref="configForm" :kbtenantInfo="kbtenantInfo" :kbobj="kbobj" @cancleConfig="cancleConfig" @saveConfig="saveConfig"></config> |
| | | <div class="rt-container-main" :style="{height: documentHeight + 70 + 'px'}"> |
| | | <config ref="configForm" :kbtenantInfo="kbtenantInfo" @cancleConfig="cancleConfig" @saveConfig="saveConfig"></config> |
| | | </div> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | |
| | | import docx from '@/views/dmx/knowledgeLib/components/docx.vue' |
| | | import excel from '@/views/dmx/knowledgeLib/components/excel.vue' |
| | | import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue' |
| | | import { Message } from "@arco-design/web-vue"; |
| | | import { parseTime } from "@/utils"; |
| | | import { Message, Modal } from "@arco-design/web-vue"; |
| | | import { documentHeight, parseTime } from "@/utils"; |
| | | import { deleteLlm } from "@/api/model"; |
| | | type SizeProps = 'mini' | 'small' | 'medium' | 'large'; |
| | | type Column = TableColumnData & { checked?: true }; |
| | | const account = ref(null) |
| | |
| | | |
| | | const size = ref<SizeProps>('medium'); |
| | | let visible = ref(false) |
| | | let listloading = ref(false) |
| | | let keywords = ref('') |
| | | let activeKey = ref('1') |
| | | let detailsShow = ref(false) |
| | |
| | | const knowledgeData = async ( |
| | | params = { page: 1, page_size: 20 } |
| | | ) => { |
| | | setLoading(true); |
| | | listloading.value = true; |
| | | try { |
| | | const { data } = await queryKbList(params); |
| | | // console.log(data, 'data'); |
| | |
| | | } catch (err) { |
| | | // you can report use errorHandler or other |
| | | } finally { |
| | | setLoading(false); |
| | | listloading.value = false; |
| | | } |
| | | }; |
| | | |
| | |
| | | } |
| | | }; |
| | | |
| | | const deleteKnowledge = async (id) => { |
| | | let data = await deleteKnow({ |
| | | kb_id:id |
| | | }) |
| | | if(data.code == 0){ |
| | | Message.success('删除成功'); |
| | | knowledgeData() |
| | | } |
| | | const deleteKnowledge = (id) => { |
| | | Modal.confirm({ |
| | | title: '提示信息', |
| | | content: '确认删除吗', |
| | | okText: '确定', |
| | | cancelText: '取消', |
| | | hideTitle: true, |
| | | onOk: async () => { |
| | | let data = await deleteKnow({ |
| | | kb_id:id |
| | | }) |
| | | if(data.code == 0){ |
| | | Message.success('删除成功'); |
| | | knowledgeData() |
| | | } |
| | | }, |
| | | onCancel: () => {}, |
| | | }); |
| | | } |
| | | const reset = () => { |
| | | formModel.value = generateFormModel(); |
| | | }; |
| | | function handleTabChange(key: string) { |
| | | function handleTabChange(key) { |
| | | // 处理标签改变事件 |
| | | console.log('Changed to tab:', key); |
| | | activeKey.value=key; |
| | |
| | | .main-container{ |
| | | display: flex; |
| | | width: 100%; |
| | | height: 100%; |
| | | .lf-container{ |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: space-evenly; |
| | | //background: #ffffff; |
| | | border-radius: 8px; |
| | | background: var(--color-bg-2); |
| | | width: 200px; |
| | | .lf-container-top{ |
| | |
| | | flex-direction: column; |
| | | box-sizing: border-box; |
| | | width: 90%; |
| | | //height: 56rem; |
| | | border: 1px solid var(--color-fill-3); |
| | | border-radius: 8px; |
| | | //padding: 10px; |
| | | margin-bottom: 10px; |
| | | //.tabs{ |
| | |
| | | box-sizing: border-box; |
| | | margin: 10px 10px; |
| | | padding:0 10px; |
| | | color: rgba(0, 0, 0, 0.88); |
| | | padding-right: 20%; |
| | | font-size: 14px; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | list-style: none; |
| | | position: relative; |
| | | background: #ffffff; |
| | | border: 1px solid #f0f0f0; |
| | | color: var(--color-text-1); |
| | | border: 1px solid var(--color-neutral-3); |
| | | background: var(--color-bg-2); |
| | | border-radius: 8px; |
| | | overflow: hidden; /* 确保超出容器的文本被隐藏 */ |
| | | white-space: nowrap; /* 防止文本换行 */ |
| | | text-overflow: ellipsis; /* 超出部分显示省略号 */ |
| | | } |
| | | .tab:hover { |
| | | border: 1px solid #ffffff; |
| | | color: #2a2a2b; |
| | | border: 1px solid var(--color-neutral-3); |
| | | background: #e8e8ea; |
| | | box-shadow: 0 1px 2px -2px rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.12), 0 5px 12px 4px rgba(0, 0, 0, 0.09); |
| | | } |
| | | .tab.active { |
| | | border: 1px solid #e8e8ea; |
| | | color: #2a2a2b; |
| | | border: 1px solid var(--color-neutral-1); |
| | | background: #e8e8ea; |
| | | cursor: pointer; |
| | | } |
| | |
| | | //background: #626aea; |
| | | margin-left: 20px; |
| | | width: calc(100% - 200px); |
| | | height: 56rem; |
| | | overflow: hidden; |
| | | .rt-container-main{ |
| | | height: 76vh; |
| | | overflow: auto; |
| | | } |
| | | .details{ |
| | | position: absolute; |