From 324db843282ae84085e52a7e8ad03d01a6fb52cc Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期四, 08 八月 2024 11:51:51 +0800 Subject: [PATCH] 配置上传图片bug页面修改 --- src/views/dmx/knowledgeLib/tool.vue | 349 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 243 insertions(+), 106 deletions(-) diff --git a/src/views/dmx/knowledgeLib/tool.vue b/src/views/dmx/knowledgeLib/tool.vue index 50da491..6ea4b28 100644 --- a/src/views/dmx/knowledgeLib/tool.vue +++ b/src/views/dmx/knowledgeLib/tool.vue @@ -39,16 +39,11 @@ @submit="handleSubmit" > <a-divider style="margin-top: 10px" /> - <a-form-item - field="slider" - label="鍧梩oken鏁�" - :rules="[ - { type: 'number', min: 1, message: 'slider is min than 1' }, - ]" - > + <a-form-item field="slider" label="鍧桾oken鏁�"> <a-slider v-model="form.chunk_token_num" - :max="1000" + :min="0" + :max="2048" show-input /> </a-form-item> @@ -73,37 +68,30 @@ placeholder="璇峰~鍐欐彁绀鸿瘝" /> </a-form-item> - <a-form-item - field="slider" - label="鏈�澶oken鏁�" - :rules="[ - { type: 'number', min: 5, message: 'slider is min than 5' }, - ]" - > + <a-form-item field="slider" label="鏈�澶oken鏁�"> <a-slider v-model="form.max_token" - :min="1" - :max="1000" + :min="0" + :max="2048" show-input /> </a-form-item> - <a-form-item - field="slider" - label="闃堝��" - :rules="[ - { type: 'number', min: 5, message: 'slider is min than 5' }, - ]" - > - <a-slider v-model="form.threshold" show-tooltip show-input /> + <a-form-item field="slider" label="闃堝��"> + <a-slider + v-model="form.threshold" + :step="0.01" + :min="0" + :max="1" + show-input + /> </a-form-item> - <a-form-item - field="slider" - label="鏈�澶ц仛绫绘暟" - :rules="[ - { type: 'number', min: 5, message: 'slider is min than 5' }, - ]" - > - <a-slider v-model="form.max_cluster" :max="1000" show-input /> + <a-form-item field="slider" label="鏈�澶ц仛绫绘暟"> + <a-slider + v-model="form.max_cluster" + :min="1" + :max="1024" + show-input + /> </a-form-item> <a-form-item field="slider" @@ -185,7 +173,12 @@ </a-space> <a-divider style="margin: 10px 0" /> <p> - <a-button type="text" class="button" style="color: #2a2a2b"> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="addBlock(1)" + > <template #icon> <icon-check-circle /> </template> @@ -193,7 +186,12 @@ </a-button> </p> <p> - <a-button type="text" class="button" style="color: #2a2a2b"> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="addBlock(0)" + > <template #icon> <icon-close-circle /> </template> @@ -202,7 +200,12 @@ </p> <a-divider style="margin: 10px 0" /> <p> - <a-button type="text" class="button" style="color: #2a2a2b"> + <a-button + type="text" + class="button" + style="color: #2a2a2b" + @click="addBlock(3)" + > <template #icon> <icon-delete /> </template> @@ -211,10 +214,28 @@ </p> </template> </a-popover> + <a-space + direction="vertical" + size="large" + style="margin-right: 10px" + class="space_search" + v-show="!isBtn" + > + <a-input-search + :style="{ width: '220px' }" + v-model="form.keywords" + @input="getList()" + allow-clear + @clear.stop="getList()" + placeholder="鎼滅储" + /> + </a-space> <a-button type="outline" class="button" style="margin-right: 10px" + v-show="isBtn" + @click.stop="isBtn = !isBtn" > <template #icon> <icon-search /> @@ -234,69 +255,50 @@ size="large" @change="onChangeavailable" > - <a-radio value="">鎵�鏈�</a-radio> - <a-radio value="1">鍚敤</a-radio> - <a-radio value="0">绂佺敤</a-radio> + <a-radio :value="''">鎵�鏈�</a-radio> + <a-radio :value="1">鍚敤</a-radio> + <a-radio :value="0">绂佺敤</a-radio> </a-radio-group> </template> </a-popover> - <addDetails :item="item"></addDetails> + <addDetails + :item="item" + @canplaythrough="canplaythrough" + ></addDetails> </div> </div> <a-divider style="margin-top: 10px" /> <div class="groupMain"> - <a-checkbox-group v-model="data" @change="handleChange"> - <div - class="groupList" - :style="{ background: keyBg == '1' ? '#eff8ff' : 'white' }" - > - <a-checkbox value="1"></a-checkbox> + <a-spin :loading="isLoading" :tip="tip"> + <a-checkbox-group v-model="data" @change="handleChange"> <div - class="groupList-content" - @click="groupListContentClick('1')" - @dblclick="contentClick(1)" + class="groupList" + :class="{ + groupActive: keyBg == '1', + groupNoActive: keyBg != '1', + }" + v-for="(item, index) in listData" + :key="index" > - 鑰� stable version 鏄渶鏂扮ǔ瀹氱増锛岀粡杩囧厖鍒嗘祴璇曞拰楠岃瘉锛宐ug 杈冨皯锛� - 閫傚悎鐢ㄤ簬鐢熶骇鐜銆傚叾鐗堟湰鍙烽�氬父涓哄弻鏁帮紝濡� 1.26銆俵egacy versions - 鍒欐槸涔嬪墠鍙戝竷鐨勭ǔ瀹氱増锛屽浜庨渶瑕� - 鐗瑰畾鏃х増鏈殑鍏煎鎬ф垨瀹夊叏鎬ф敮鎸佺殑鐢ㄦ埛鏈夌敤锛屼絾涓�鑸笉 - 鎺ㄨ崘鐢ㄤ簬鏂伴」鐩紝闄ら潪鏈夌壒娈婇渶姹傘�傚湪瀹為檯浣跨敤涓紝濡傛灉杩芥眰鏈�鏂板姛鑳� - 涓旀効鎰忛潰瀵瑰彲鑳藉瓨鍦ㄧ殑涓�浜涗笉绋冲畾鍥犵礌锛屽彲浠ュ皾璇曚娇鐢ㄤ富绾跨増鏈繘琛屾祴璇曞拰鐮旂┒锛涘鏋滄槸鐢ㄤ簬鐢熶骇鐜 + <a-checkbox :value="item.chunk_id"></a-checkbox> + <div + class="groupList-content emphaRed" + @click="groupListContentClick('1')" + @dblclick="contentClick(1)" + v-html="item.content_with_weight" + > + </div> + <div class="groupList-right"> + <a-switch + v-model="item.available_int" + :checked-value="1" + :unchecked-value="0" + @change="handleChangeStatus(item)" + /> + </div> </div> - <div class="groupList-right"> - <a-switch - v-model="switchType" - checked-value="1" - unchecked-value="0" - @change="handleChangeStatus()" - /> - </div> - </div> - - <div - class="groupList" - :style="{ background: keyBg == '2' ? '#eff8ff' : 'white' }" - > - <a-checkbox value="1"></a-checkbox> - <div - class="groupList-content" - @click="groupListContentClick('2')" - @dblclick="contentClick(1)" - > - 鑰� stable version 鏄渶鏂扮ǔ瀹氱増锛岀粡杩囧厖鍒嗘祴璇曞拰楠岃瘉锛宐ug 杈冨皯锛� - 閫傚悎鐢ㄤ簬鐢熶骇鐜銆傚叾鐗堟湰鍙烽�氬父涓哄弻鏁帮紝濡� 1.26銆俵egacy versions - 鍒欐槸涔嬪墠鍙戝竷鐨勭ǔ瀹氱増锛屽浜庨渶瑕� - </div> - <div class="groupList-right"> - <a-switch - v-model="switchType" - checked-value="1" - unchecked-value="0" - @change="handleChangeStatus()" - /> - </div> - </div> - </a-checkbox-group> + </a-checkbox-group> + </a-spin> </div> </div> <eidtDetails ref="eidtDil"></eidtDetails> @@ -306,9 +308,22 @@ </template> <script lang="ts" setup> - import { onMounted, onBeforeMount, reactive, ref, computed } from 'vue'; + import { + onMounted, + onBeforeMount, + reactive, + ref, + computed, + watch, + } from 'vue'; import { Message } from '@arco-design/web-vue'; - import { kbdocumentchangeparser } from '@/api/kbList'; + import { + kbdocumentchangeparser, + achunkCreate, + queryChunkList, + chunkSwitch, + chunkRm, + } from '@/api/kbList'; import addDetails from '@/views/dmx/knowledgeLib/addDetails.vue'; import eidtDetails from '@/views/dmx/knowledgeLib/eidtDetails.vue'; const visible = ref(false); @@ -334,15 +349,33 @@ }; }); + const isBtn = ref(true); + + const closeSlelct = () => { + window.addEventListener('click', (event) => { + if (!event.target.closest('.space_search') && !isBtn.value) { + isBtn.value = true; + // form.keywords = ''; + } + }); + }; + + watch(isBtn, (val) => { + if (!val) { + closeSlelct(); + } + }); + const form = reactive({ parser_id: props.item.parser_id, doc_id: props.item.id, max_token: 698, - threshold: 30, + threshold: 0.3, max_cluster: 233, random_seed: 1500, chunk_token_num: 128, use_raptor: false, + keywords: '', pages: {}, prompt: '璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n' + @@ -358,6 +391,9 @@ }, ], }; + + const listData = ref([]); + const formatter = (value) => { return value / 100; }; @@ -430,11 +466,14 @@ const onRadioChange = () => { console.log(radio.value); }; + //鎵归噺鎿嶄綔 const handleChangeAll = (value) => { indeterminate.value = false; if (value) { checkedAll.value = true; - data.value = ['1', '2', '3']; + listData.value.forEach((item) => { + data.value.push(item.chunk_id); + }); } else { checkedAll.value = false; data.value = []; @@ -442,15 +481,33 @@ }; const handleChange = (values) => { - if (values.length === 3) { - checkedAll.value = true; - indeterminate.value = false; - } else if (values.length === 0) { - checkedAll.value = false; - indeterminate.value = false; + data.value = values; + }; + + //鎵归噺鍚敤鍒犻櫎绂佺敤 + const addBlock = (type) => { + if (data.value.length == 0) { + Message.error('璇烽�夋嫨瑕佹搷浣滅殑鏁版嵁'); + return; + } + if (type == 3) { + deleteChunk(); } else { - checkedAll.value = false; - indeterminate.value = true; + let params = { + chunk_ids: data.value, + available_int: type, + doc_id: props.item.id, + }; + chunkSwitch(params).then((res) => { + if (res.code == 0) { + Message.success('鎿嶄綔鎴愬姛'); + getList(); + checkedAll.value = false; + data.value = []; + } else { + Message.error('鎿嶄綔澶辫触'); + } + }); } }; @@ -459,15 +516,81 @@ }; const onChangeavailable = () => { - console.log(available_int.value); + getList(); }; - const handleChangeStatus = () => { - console.log(switchType.value); + const handleChangeStatus = (val) => { + updateChunkStatus(val); + }; + const isLoading = ref(true); + // 鑷畾涔夊姞杞芥彁绀烘枃鏈� + const tip = '鍔犺浇涓紝璇风◢鍊�...'; + //鑾峰彇鍒楄〃 + const getList = async () => { + let params = { + doc_id: props.item.id, + keywords: form.keywords, + page: 1, + size: 10000, + }; + if (available_int.value !== '') { + params.available_int = available_int.value; + } + await queryChunkList(params).then((res) => { + if (res.code == 0) { + listData.value = res.data.chunks; + isLoading.value = false; + listData.value = listData.value.map((item) => { + item.available_int = parseInt(item.available_int); + return item; + }); + } + }); + }; + //鏇存柊鍒楄〃 + const canplaythrough = () => { + getList(); + }; + + //鍚敤绂佺敤 + const updateChunkStatus = (val) => { + let params = { + chunk_ids: [val.chunk_id], + available_int: val.available_int, + doc_id: props.item.id, + }; + chunkSwitch(params).then((res) => { + console.log(res); + if (res.code == 0) { + Message.success('鏇存柊鎴愬姛'); + getList(); + } else { + Message.error('鏇存柊澶辫触'); + } + }); + }; + + //鍒犻櫎 + const deleteChunk = () => { + let params = { + chunk_ids: data.value, + doc_id: props.item.id, + }; + chunkRm(params).then((res) => { + console.log(res); + if (res.code == 0) { + Message.success('鍒犻櫎鎴愬姛'); + getList(); + } else { + Message.error('鍒犻櫎澶辫触'); + } + }); }; onBeforeMount(() => {}); - onMounted(() => {}); + onMounted(() => { + getList(); + }); </script> <style scoped lang="less"> @@ -482,6 +605,9 @@ .button { //color: #2a2a2b!important; } + } + ::-webkit-scrollbar { + display: none; } .groupMain { width: 100%; @@ -504,11 +630,22 @@ box-sizing: border-box; margin: 0; padding: 0; - color: rgba(0, 0, 0, 0.88); + color: #2a2a2b; font-size: 14px; font-family: Inter; position: relative; } } } + :deep(.emphaRed em) { + color: red !important; + } + + .groupActive { + background: #eff8ff; + } + .groupNoActive { + background: var(--color-bg-1); + color: var(--color-text-1); + } </style> -- Gitblit v1.8.0