From fa5fd89d1fd0f2d0b0bb1944b3ac4a452c49f83a Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期六, 17 八月 2024 16:30:33 +0800 Subject: [PATCH] fix: 修改分页id --- src/views/dmx/knowledgeLib/index.vue | 557 ++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 425 insertions(+), 132 deletions(-) diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue index 3635d71..1be7bab 100644 --- a/src/views/dmx/knowledgeLib/index.vue +++ b/src/views/dmx/knowledgeLib/index.vue @@ -8,10 +8,13 @@ :placeholder="$t('cardList.searchInput.placeholder')" style="width: 130px" /> - <addKnow @knowledgeData="knowledgeData"></addKnow> + <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="height: calc(100vh - 300px); overflow: auto"> <div class="tab" v-for="(tab, index) in tabs" @@ -22,29 +25,31 @@ {{ tab.name }} <a-popover position="bl"> <icon-more - :style="{ position: 'absolute', top: '10px', right: '20px' }" + :style="{ position: 'absolute', top: '10px', right: '10px' }" /> <template #content> - <a-popconfirm - content="纭畾鍒犻櫎鍚�?" - @ok="deleteKnowledge(tab.id)" - type="warning" + <!-- <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 > - <span - style="cursor: pointer; color: #0960bd; font-size: 12px" - ><icon-delete />鍒犻櫎</span - > - </a-popconfirm> </template> </a-popover> </div> </a-scrollbar> - </div> + </a-spin> </div> - <div class="rt-container"> - <a-tabs default-active-key="1"> + <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"> + <a-scrollbar + class="rt-container-main" + :style="{ height: documentHeight + 70 + 'px' }" + style="overflow: auto" + > <a-card ref="account" class="general-card" @@ -65,22 +70,102 @@ style=" margin-bottom: 10px; display: flex; - justify-content: right; + justify-content: space-between; " > - <a-input-search - :placeholder=" - $t('cardList.searchInput.placeholder') - " - style="width: 200px; margin-right: 10px" - v-model="keywords" - @change="search" - /> - <!--鏂板缓--> - <add - :kbobj="kbobj" - @changeFetchData="changeFetchData" - /> + <a-popover + position="bottom" + v-model="checkedArr.length" + trigger="click" + > + <a-button :disabled="checkedArr.length == 0" border + >鎵归噺 + <icon-down style="margin-left: 4px" /> + </a-button> + <template #content> + <p> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="enableDisable(1)" + > + <template #icon> + <icon-play-circle /> + </template> + 鍚敤 + </a-button> + </p> + <p> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="enableDisable(0)" + > + <template #icon> + <icon-record color="" /> + </template> + 绂佺敤 + </a-button> + </p> + <p> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="addBlock(1)" + > + <template #icon> + <icon-check-circle /> + </template> + 鍚姩 + </a-button> + </p> + <p> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="addBlock(2)" + > + <template #icon> + <icon-close-circle /> + </template> + 鍙栨秷 + </a-button> + </p> + <a-divider style="margin: 10px 0" /> + <p> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="addBlock(3)" + > + <template #icon> + <icon-delete /> + </template> + 鍒犻櫎 + </a-button> + </p> + </template> + </a-popover> + <span> + <a-input-search + :placeholder=" + $t('cardList.searchInput.placeholder') + " + style="width: 200px; margin-right: 10px" + v-model="keywords" + @change="search" + /> + <!--鏂板缓--> + <add + :kbobj="kbobj" + @changeFetchData="changeFetchData" + /> + </span> </a-col> </a-row> </a-form> @@ -120,13 +205,15 @@ <!-- {{ $t('searchTable.operation.download') }}--> <!-- </a-button>--> <a-tooltip :content="$t('searchTable.actions.refresh')"> - <div class="action-icon"><icon-refresh size="18" /></div> + <div class="action-icon"> + <icon-refresh size="18" /> + </div> </a-tooltip> <a-dropdown @select="handleSelectDensity"> <a-tooltip :content="$t('searchTable.actions.density')"> - <div class="action-icon" - ><icon-line-height size="18" - /></div> + <div class="action-icon"> + <icon-line-height size="18" /> + </div> </a-tooltip> <template #content> <a-doption @@ -184,7 +271,15 @@ :bordered="false" :size="size" @page-change="onPageChange" - :scroll="{ y: 580 }" + :max-height="documentHeight" + :scroll="{ x: 1000 }" + :row-selection="{ + type: 'checkbox', + showCheckedAll: true, + onlyCurrent: false, + }" + @select-all="selectTabAll" + @selection-change="selectTabChange" > <template #name="{ record }"> <!-- <icon-file style="color: #0960bd;margin-right: 4px;" />--> @@ -212,7 +307,7 @@ <template #run="{ record }"> <div style="display: flex; align-items: center"> <div style="width: 100px"> - <a-popover title="Title" v-if="record.run == '3'"> + <a-popover title="" v-if="record.run == '4'"> <a-tag :loading="record.loading" :color="'blue'" @@ -220,10 +315,10 @@ >{{ $t('dmx.list.complete') }}</a-tag > <template #content> - <p>Here is the text content</p> + <p></p> </template> </a-popover> - <a-popover title="Title" v-if="record.run == '1'"> + <a-popover title="" v-if="record.run == '3'"> <a-tag :loading="record.loading" :color="'blue'" @@ -231,10 +326,21 @@ >{{ $t('dmx.list.complete') }}</a-tag > <template #content> - <p>Here is the text content</p> + <p></p> </template> </a-popover> - <a-popover title="Title" v-if="record.run == '2'"> + <a-popover title="" v-if="record.run == '1'"> + <a-tag + :loading="record.loading" + :color="'blue'" + border + >瑙f瀽涓�...</a-tag + > + <template #content> + <p></p> + </template> + </a-popover> + <a-popover title="" v-if="record.run == '2'"> <a-tag :loading="record.loading" :color="'gold'" @@ -242,18 +348,18 @@ >{{ $t('dmx.list.cancel') }}</a-tag > <template #content> - <p>Here is the text content</p> + <p></p> </template> </a-popover> - <a-popover title="Title" v-if="record.run == '0'"> + <a-popover title="" v-if="record.run == '0'"> <a-tag :loading="record.loading" :color="'green'" border - >{{ $t('dmx.list.NotStarted') }}</a-tag - > + >{{ $t('dmx.list.NotStarted') }} + </a-tag> <template #content> - <p>Here is the text content</p> + <p></p> </template> </a-popover> </div> @@ -265,12 +371,20 @@ :loading="record.loading" > <template #icon> + <icon-sync v-if="record.run == '4'" /> <icon-sync v-if="record.run == '3'" /> - <icon-sync v-if="record.run == '2'" /> <icon-sync style="color: green" - v-if="record.run == '1'" + v-if="record.run == '2'" /> + <a-button + status="warning" + shape="circle" + v-if="record.run == '1'" + size="small" + > + <icon-close /> + </a-button> <icon-play-circle style="color: green" v-if="record.run == '0'" @@ -292,7 +406,11 @@ type="warning" @ok="deleteItem(record)" > - <a-button type="text" size="small"> + <a-button + type="text" + size="small" + :disabled="record.run == '1'" + > <template #icon> <icon-delete /> </template> @@ -301,6 +419,7 @@ <a-button type="text" size="small" + :disabled="record.run == '1'" @click="onDownloadDocument(record)" > <template #icon> @@ -308,29 +427,43 @@ </template> </a-button> - <a-button type="text" size="small" @click="seeload(record)"> + <!-- <a-button + type="text" + size="small" + :disabled="record.run == '1'" + @click="previewArea(record)" + > <template #icon> <icon-eye /> </template> - </a-button> + </a-button> --> </template> </a-table> </a-card> - </div> + </a-scrollbar> </a-tab-pane> <a-tab-pane key="2" :title="t('dmx.list.test')"> - <div class="rt-container-main"> + <a-scrollbar + class="rt-container-main" + :style="{ height: documentHeight + 70 + 'px' }" + style="overflow: auto" + > <test ref="testForm"></test> - </div> + </a-scrollbar> </a-tab-pane> <a-tab-pane key="3" :title="t('dmx.list.disposition')"> - <div class="rt-container-main"> + <a-scrollbar + class="rt-container-main" + :style="{ height: documentHeight + 70 + 'px' }" + style="overflow: auto" + > <config ref="configForm" :kbtenantInfo="kbtenantInfo" - :kbobj="kbobj" + @cancleConfig="cancleConfig" + @saveConfig="saveConfig" ></config> - </div> + </a-scrollbar> </a-tab-pane> </a-tabs> <!-- <div v-if="detailsShow" class="details">--> @@ -369,10 +502,10 @@ <!-- </div>--> <!-- <a-divider style="margin-top: 10px" />--> <!-- </div>--> - <!-- </div> --> + </div> </div> <a-modal title=" " v-model:visible="visible" :footer="false" fullscreen> - <!-- <docx v-if="documenttype=='docx'" previewSrc="http://192.168.20.116:1080/v1/document/get/405c3efa4d8c11ef97560242ac120006"></docx>--> + <!-- <docx previewSrc="http://192.168.20.116:1080/v1/document/get/405c3efa4d8c11ef97560242ac120006"></docx>--> <docx v-if="documenttype == 'docx'" :previewSrc="previewSrc"></docx> <excel v-if="documenttype == 'excel'" :previewSrc="previewSrc"></excel> <txtPdf v-if="documenttype == 'txtPdf'" :previewSrc="previewSrc"></txtPdf> @@ -405,6 +538,8 @@ kbdocumentrun, kbdocumentchangeStatus, downloadFile, + chunkSwitch, + changeStatus, } from '@/api/kbList'; import { Pagination } from '@/types/global'; import type { SelectOptionData } from '@arco-design/web-vue/es/select/interface'; @@ -420,8 +555,13 @@ 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'; + import { userModelState } from '@/store'; + + let modelStore = userModelState(); + const httpUrl = modelStore.hrefUrl; type SizeProps = 'mini' | 'small' | 'medium' | 'large'; type Column = TableColumnData & { checked?: true }; const account = ref(null); @@ -444,8 +584,12 @@ const size = ref<SizeProps>('medium'); let visible = ref(false); + let listloading = ref(false); let keywords = ref(''); + let activeKey = ref('1'); let detailsShow = ref(false); + let checkedAll = ref(false); + let checkedArr = ref([]); let selectedTab = ref(0); let testForm = ref(null); let configForm = ref(null); @@ -461,7 +605,7 @@ embd_id: 'BAAI/bge-large-zh-v1.5', img2txt_id: 'qwen-vl-max', llm_id: 'qwen-plus', - name: 'wanghao鈥榮 Kingdom', + name: 'wanghaos Kingdom', parser_ids: 'naive:General,qa:Q&A,resume:Resume,manual:Manual,table:Table,paper:Paper,book:Book,laws:Laws,presentation:Presentation,picture:Picture,one:One', rerank_id: 'BAAI/bge-reranker-v2-m3', @@ -473,16 +617,16 @@ const selectTab = (index, item) => { selectedTab.value = index; + checkedArr.value = []; // console.log(item.id); kbobj = item; kbId = kbobj.id; - testForm.value.changekbid(kbId); - configForm.value.changekbObj(kbobj); fetchData({ kb_id: kbobj.id, page: 1, page_size: 20, }); + getKbdetail(kbobj.id); }; const basePagination: Pagination = { @@ -587,10 +731,7 @@ setLoading(true); try { const data = await queryKbDocumentList(params); - console.log(data, 'data'); if (data.code == '0') { - // 璇︽儏 - // const kbtenantInfo = await queryKbtenantInfo(); parser_ids = kbtenantInfo.parser_ids.split(',').reduce((acc, pair) => { const [key, value] = pair.split(':'); acc[key] = value; @@ -606,14 +747,10 @@ parser_id: parser_ids[item.parser_id], }; }); - console.log(renderData.value, 'renderData'); + // console.log(renderData.value, 'renderData'); pagination.current = params.page; pagination.total = data.data.total; - // 鏌ヨ鐭ヨ瘑搴撹鎯� - kbdetail = await queryKbdetail({ - kb_id: params.kb_id, - }); } } catch (err) { // you can report use errorHandler or other @@ -636,26 +773,36 @@ }; const onPageChange = (current: number) => { - fetchData({ ...basePagination, current }); + fetchData({ ...basePagination, current, kb_id: kbobj.id }); + }; + + const selectTabAll = (val) => { + console.log(val, '鍏ㄩ��'); + checkedAll.value = val; + }; + const selectTabChange = (val) => { + console.log(val, '鍗曢��'); + checkedArr.value = val; }; const knowledgeData = async (params = { page: 1, page_size: 20 }) => { - setLoading(true); + listloading.value = true; try { const { data } = await queryKbList(params); - console.log(data, 'data'); + // console.log(data, 'data'); tabs.value = data; - console.log(tabs.value, 'tabs'); + // console.log(tabs.value, 'tabs'); if (tabs.value.length > 0 && tabs.value[0]) { kbobj = tabs.value[0]; kbId = kbobj.id; - testForm.value.changekbid(kbId); - configForm.value.changekbObj(kbobj); + activeKey.value = '1'; fetchData({ kb_id: kbobj.id, page: 1, page_size: 20, }); + getKbdetail(kbobj.id); + } else { } // renderData.value = data.list; // console.log(renderData, 'renderData'); @@ -664,22 +811,67 @@ } catch (err) { // you can report use errorHandler or other } finally { + listloading.value = false; + } + }; + + const getKbdetail = async (kb_id) => { + // 鏌ヨ鐭ヨ瘑搴撹鎯� + const data = await queryKbdetail({ + kb_id: kb_id, + }); + kbdetail = data.data; + testForm.value.changekbid(kbdetail.id); + configForm.value.changekbObj(kbdetail); + }; + + const getknowledge = async (id) => { + setLoading(true); + try { + const { data } = await queryKbList({ page: 1, page_size: 20 }); + console.log(data, '鏌ヨ鐭ヨ瘑搴撳垪琛�'); + tabs.value = data; + if (tabs.value.length > 0) { + // 瀹氫綅鍒版柊澧炵殑鐭ヨ瘑搴撳崟鍏� + selectedTab.value = tabs.value.findIndex((item) => item.id == id); + getKbdetail(id); // 鑾峰彇璇︽儏 + activeKey.value = '3'; + } + } catch (err) { + // you can report use errorHandler or other + } finally { setLoading(false); } }; - const deleteKnowledge = async (id) => { - let data = await deleteKnow({ - kb_id: id, + 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: () => {}, }); - if (data.code == 0) { - Message.success('鍒犻櫎鎴愬姛'); - knowledgeData(); - } }; const reset = () => { formModel.value = generateFormModel(); }; + + function handleTabChange(key) { + // 澶勭悊鏍囩鏀瑰彉浜嬩欢 + console.log('Changed to tab:', key); + activeKey.value = key; + } const handleSelectDensity = ( val: string | number | Record<string, any> | undefined, @@ -688,18 +880,95 @@ size.value = val as SizeProps; }; - const handleChange = ( - checked: boolean | (string | boolean | number)[], - column: Column, - index: number - ) => { - if (!checked) { - cloneColumns.value = showColumns.value.filter( - (item) => item.dataIndex !== column.dataIndex - ); + const cancleConfig = () => { + activeKey.value = '1'; + let id = tabs.value[selectedTab.value].id; + fetchData({ + kb_id: id, + page: 1, + page_size: 20, + }); + }; + + const saveConfig = async () => { + activeKey.value = '1'; + let id = tabs.value[selectedTab.value].id; + const { data } = await queryKbList({ page: 1, page_size: 20 }); + tabs.value = data; + fetchData({ + kb_id: id, + page: 1, + page_size: 20, + }); + getKbdetail(id); // 鑾峰彇璇︽儏 + }; + + const enableDisable = async (type) => { + Promise.all( + checkedArr.value.map(async (item) => { + await changeStatus({ + doc_id: item, + status: type, + }); + }) + ).then(() => { + Message.success('鏇存柊鎴愬姛'); + getKbList(); + }); + }; + + //鎵归噺鍚敤鍒犻櫎绂佺敤 + const addBlock = async (type) => { + if (type != 3) { + //鍚姩鍜屽彇娑� + let data = await kbdocumentrun({ + doc_ids: checkedArr.value, + run: type, + }); + if (data.code == 0) { + checkedArr.value.forEach(async (item) => { + tabs.value.forEach(async (items) => { + if (items.id == item) { + items.loading = true; + } + }); + }); + // fetchData({ + // kb_id: tabs.value[selectedTab.value].id, + // page: 1, + // page_size: 20, + // }); + getKbList(); + } else { + // Message.error('瑙f瀽澶辫触'); + // row.run = '1'; + } } else { - cloneColumns.value.splice(index, 0, column); + //鎵归噺鍒犻櫎 + Modal.confirm({ + title: '鎻愮ず淇℃伅', + content: '纭鍒犻櫎鍚�', + okText: '纭畾', + cancelText: '鍙栨秷', + hideTitle: true, + onOk: async () => { + let data = await kbdocumentrm({ doc_id: checkedArr.value }); + if (data.code == 0) { + Message.success('鍒犻櫎鎴愬姛'); + getKbList(); + } + }, + onCancel: () => {}, + }); } + }; + + const getKbList = async () => { + await fetchData({ + kb_id: tabs.value[selectedTab.value].id, + page: 1, + page_size: 20, + }); }; const exchangeArray = <T extends Array<any>>( @@ -742,6 +1011,7 @@ const goBackClick = () => { detailsShow.value = false; }; + function upTabdateItem(id, newName) { console.log(id, newName); const itemToUpdate = renderData.value.find((item) => item.id === id); @@ -755,7 +1025,7 @@ let data = await kbdocumentrm({ doc_id: row.id }); if (data.code == 0) { Message.success('鍒犻櫎鎴愬姛'); - console.log(kbobj, 'kbobj'); + // console.log(kbobj, 'kbobj'); fetchData({ kb_id: kbobj.id, page: 1, @@ -765,12 +1035,12 @@ }; const onDownloadDocument = async (record) => { console.log(record); - downloadFile({ + await downloadFile({ url: `/api/v1/document/get/${record.id}`, filename: record.name, }); }; - const seeload = async (row) => { + const previewArea = async (row) => { Object.assign(seeObj, row); // console.log(seeObj.name, 'seeObj'); let type = row.name.split('.')[1]; @@ -786,9 +1056,11 @@ } else { return false; } + previewSrc.value = `${import.meta.env.VITE_API_BASE_URL}/v1/document/get/${ row.id }`; + // previewSrc.value = `${ httpUrl }/v1/document/get/${row.id}` visible.value = true; }; @@ -804,25 +1076,32 @@ }; const run = async (row) => { - console.log(row); row.loading = true; - let run = '1'; - if (row.run != '2') { + let run; + if (row.run == '0') { + run = '1'; + } else if (row.run == '1') { + run = '2'; + } else if (row.run == '2') { run = '1'; } else { - run = '2'; + run = '1'; } let data = await kbdocumentrun({ doc_ids: [row.id], run: run, }); if (data.code == 0) { - Message.success('瑙f瀽鎴愬姛'); - row.run = '3'; + fetchData({ + kb_id: tabs.value[selectedTab.value].id, + page: 1, + page_size: 20, + }); } else { - Message.error('瑙f瀽澶辫触'); - row.run = '1'; + // Message.error('瑙f瀽澶辫触'); + // row.run = '1'; } + row.loading = false; }; @@ -846,44 +1125,46 @@ { deep: true, immediate: true } ); - onBeforeMount(() => {}); + onBeforeMount(async () => { + // const {data} = await queryKbtenantInfo(); + // Object.assign(kbtenantInfo,data); + // console.log(kbtenantInfo,'kbtenantInfo鐨勬暟鎹�'); + }); onMounted(() => { knowledgeData(); }); </script> -<script lang="ts"> - export default { - name: 'SearchTable', - methods: {}, - }; -</script> - <style scoped lang="less"> .container { padding: 0 20px 20px 20px; + .main-container { display: flex; width: 100%; - height: 100%; + .lf-container { display: flex; flex-direction: column; align-items: center; - justify-content: space-evenly; - background: var(--color-neutral-3); + //justify-content: space-evenly; + border-radius: 8px; + background: var(--color-bg-2); width: 200px; + .lf-container-top { display: flex; margin: 10px 0; } + .lf-container-down { display: flex; flex-direction: column; box-sizing: border-box; width: 90%; - //height: 56rem; - border: 1px solid var(--color-neutral-3); + height: calc(100% - 80px); + border: 1px solid var(--color-fill-3); + border-radius: 8px; //padding: 10px; margin-bottom: 10px; //.tabs{ @@ -896,51 +1177,58 @@ box-sizing: border-box; margin: 10px 10px; padding: 0 10px; - //color: var(--color-text-1); + 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: #000000; + 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; - color: #000000; cursor: pointer; - 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); } } } + .rt-container { position: relative; //background: #626aea; margin-left: 20px; width: calc(100% - 200px); - height: 56rem; + overflow: hidden; + .rt-container-main { - height: 76vh; + overflow: auto; } + .details { position: absolute; top: 0; left: 0; width: 100%; height: 100%; - //background: #ffffff; + background: #ffffff; + .details-header { display: flex; justify-content: space-between; @@ -951,6 +1239,7 @@ } } } + :deep(.arco-table-th) { &:last-child { .arco-table-th-item-title { @@ -958,18 +1247,22 @@ } } } + .action-icon { margin-left: 12px; cursor: pointer; } + .active { color: #0960bd; background-color: #e3f4fc; } + .setting { display: flex; align-items: center; width: 200px; + .title { margin-left: 12px; cursor: pointer; -- Gitblit v1.8.0