From 98ddf2bd816abe50ac291b5810da753624192167 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期四, 08 八月 2024 19:08:50 +0800
Subject: [PATCH] 解析方法页面bug修改

---
 src/views/dmx/knowledgeLib/tool.vue |  853 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 586 insertions(+), 267 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/tool.vue b/src/views/dmx/knowledgeLib/tool.vue
index a636442..5049ec9 100644
--- a/src/views/dmx/knowledgeLib/tool.vue
+++ b/src/views/dmx/knowledgeLib/tool.vue
@@ -1,4 +1,3 @@
-
 <template>
   <a-button type="text" @click="handleClick" size="small">
     <template #icon>
@@ -14,241 +13,451 @@
     title-align="start"
     width="900px"
   >
-      <a-tabs default-active-key="1">
-        <a-tab-pane key="1">
-          <template #title>
-            <icon-calendar/> 瑙f瀽鏂规硶
-          </template>
-          <div style="width: 100%">
-            <div style="display: flex;align-items: center;">
-              <div>
-                瑙f瀽鏂规硶:
-              </div>
-              <div style="margin-left: 10px">
-                <a-select v-model="form.parser_id" placeholder="璇烽�夋嫨" >
-                  <a-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option>
-                </a-select>
-              </div>
-            </div>
-            <div class="parser">
-              <a-form ref="formRef" :rules="rules" :model="form"  auto-label-width @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-slider v-model="form.chunk_token_num" :max="1000" show-input />
-                </a-form-item>
-                <a-divider style="margin-top: 10px" />
-                <a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐">
-                  <a-space direction="vertical" size="large">
-                    <a-switch v-model="form.use_raptor" @change="onChangeRAPTOR" />
-                  </a-space>
-                </a-form-item>
-                <div v-if="form.use_raptor">
-                  <a-form-item field="prompt" label="鎻愮ず璇�">
-                    <a-textarea
-                      v-model="form.prompt"
-                      style="height: 10rem;border: 1px solid  var(--color-fill-3);border-radius: 4px" placeholder="璇峰~鍐欐彁绀鸿瘝"  />
-                  </a-form-item>
-                  <a-form-item field="slider" label="鏈�澶oken鏁�"
-                               :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
-                    <a-slider v-model="form.max_token" :min="1" :max="1000" 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>
-                  <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>
-                  <a-form-item field="slider" label="闅忔満绉嶅瓙" v-model="form.random_seed"
-                               :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
-                    <a-input-number v-model="form.random_seed" :style="{width:'300px',marginRight:'1rem',borderRadius:'4px'}"
-                                    placeholder="璇疯緭鍏�" class="input-demo" :min="10" :max="100" />
-                    <a-button type="primary" @click="randomNumber">
-                      <icon-plus />
-                    </a-button>
-
-                  </a-form-item>
-
-                </div>
-                <a-form-item>
-                  <div style="width: 100%;text-align: right">
-                    <a-button @click="visible = false">鍙栨秷</a-button>
-                    <a-button style="margin-left: 10px" type="primary" html-type="submit">纭畾</a-button>
-                  </div>
-                </a-form-item>
-              </a-form>
+    <a-tabs default-active-key="1">
+      <a-tab-pane key="1">
+        <template #title>
+          <icon-calendar />
+          瑙f瀽鏂规硶
+        </template>
+        <div style="width: 100%">
+          <div style="display: flex; align-items: center">
+            <div> 瑙f瀽鏂规硶:</div>
+            <div style="margin-left: 10px">
+              <a-select v-model="form.parser_id" placeholder="璇烽�夋嫨">
+                <a-option
+                  v-for="item in parser_ids"
+                  :key="item.value"
+                  :label="item.name"
+                  :value="item.value"
+                ></a-option>
+              </a-select>
             </div>
           </div>
-        </a-tab-pane>
-        <a-tab-pane key="2">
-          <template #title>
-            <icon-clock-circle/> 鍒涘缓瑙f瀽鍧�
-          </template>
-          <div class="details">
-            <div class="details-header">
-              <div style="display: flex; align-items: center;justify-content: flex-end;">
-                <a-radio-group v-model="radio" type="button"  style="margin-right: 10px" @change="onRadioChange">
-                  <a-radio value="1">鍏ㄦ枃</a-radio>
-                  <a-radio value="2">鐪佺暐</a-radio>
-                </a-radio-group>
-                <a-popover position="bottom">
-                  <a-button type="outline" class="button" style="margin-right: 10px;">鎵归噺<icon-down style="margin-left: 4px" /></a-button>
-                  <template #content>
-                    <a-space direction="vertical">
-                      <a-checkbox :model-value="checkedAll" :indeterminate="indeterminate" @change="handleChangeAll" style="margin-left: 10px">
-                        閫夋嫨鎵�鏈�
-                      </a-checkbox>
-                    </a-space>
-                    <a-divider style="margin: 10px 0" />
-                    <p>
-                      <a-button type="text" class="button" style="color: #2a2a2b">
-                        <template #icon>
-                          <icon-check-circle />
-                        </template>
-                        鍚敤閫夊畾鐨�
-                      </a-button>
-                    </p>
-                    <p>
-                      <a-button type="text" class="button" style="color: #2a2a2b">
-                        <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">
-                        <template #icon>
-                          <icon-delete />
-                        </template>
-                        鍒犻櫎閫夊畾鐨�
-                      </a-button>
-                    </p>
-                  </template>
-                </a-popover>
-                <a-button type="outline" class="button" style="margin-right: 10px">
-                  <template #icon>
-                    <icon-search />
-                  </template>
+          <div class="parser">
+            <a-form
+              ref="formRef"
+              :rules="rules"
+              :model="form"
+              auto-label-width
+              @submit="handleSubmit"
+            >
+              <a-divider style="margin-top: 10px"
+                         v-if="
+                form.parser_id === 'naive'" />
+              <a-form-item
+                field="slider"
+                label="鍧桾oken鏁�"
+                v-if="
+                form.parser_id === 'naive'">
+                <a-slider
+                  v-model="form.chunk_token_num"
+                  :min="0"
+                  :max="2048"
+                  show-input
+                />
+              </a-form-item>
+              <a-divider style="margin-top: 10px"
+                         v-if="form.parser_id === 'naive' ||
+                           form.parser_id === 'qa'||
+                           form.parser_id === 'manual' ||
+                           form.parser_id === 'laws' ||
+                           form.parser_id === 'book'" />
+              <a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐"
+                           v-if="form.parser_id === 'naive' ||
+                           form.parser_id === 'qa'||
+                           form.parser_id === 'manual' ||
+                           form.parser_id === 'laws' ||
+                           form.parser_id === 'book'">
+                <a-space direction="vertical" size="large">
+                  <a-switch
+                    v-model="form.use_raptor"
+                    @change="onChangeRAPTOR"
+                  />
+                </a-space>
+              </a-form-item>
+              <div v-if="form.use_raptor">
+                <a-form-item field="prompt" label="鎻愮ず璇�">
+                  <a-textarea
+                    v-model="form.prompt"
+                    style="
+                      height: 10rem;
+                      border: 1px solid var(--color-fill-3);
+                      border-radius: 4px;
+                    "
+                    placeholder="璇峰~鍐欐彁绀鸿瘝"
+                  />
+                </a-form-item>
+                <a-form-item field="slider" label="鏈�澶oken鏁�">
+                  <a-slider
+                    v-model="form.max_token"
+                    :min="0"
+                    :max="2048"
+                    show-input
+                  />
+                </a-form-item>
+                <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="鏈�澶ц仛绫绘暟">
+                  <a-slider
+                    v-model="form.max_cluster"
+                    :min="1"
+                    :max="1024"
+                    show-input
+                  />
+                </a-form-item>
+                <a-form-item
+                  field="slider"
+                  label="闅忔満绉嶅瓙"
+                  v-model="form.random_seed"
+                  :rules="[
+                    { type: 'number', min: 5, message: 'slider is min than 5' },
+                  ]"
+                >
+                  <a-input-number
+                    v-model="form.random_seed"
+                    :style="{
+                      width: '300px',
+                      marginRight: '1rem',
+                      borderRadius: '4px',
+                    }"
+                    placeholder="璇疯緭鍏�"
+                    class="input-demo"
+                    :min="10"
+                    :max="100"
+                  />
+                  <a-button type="primary" @click="randomNumber">
+                    <icon-plus />
+                  </a-button>
+                </a-form-item>
+              </div>
+              <a-form-item>
+                <div style="width: 100%; text-align: right">
+                  <a-button @click="visible = false">鍙栨秷</a-button>
+                  <a-button
+                    style="margin-left: 10px"
+                    type="primary"
+                    html-type="submit"
+                  >纭畾
+                  </a-button
+                  >
+                </div>
+              </a-form-item>
+            </a-form>
+          </div>
+        </div>
+      </a-tab-pane>
+      <a-tab-pane key="2">
+        <template #title>
+          <icon-clock-circle />
+          鍒涘缓瑙f瀽鍧�
+        </template>
+        <div class="details">
+          <div class="details-header">
+            <div
+              style="
+                display: flex;
+                align-items: center;
+                justify-content: flex-end;
+              "
+            >
+              <a-radio-group
+                v-model="radio"
+                type="button"
+                style="margin-right: 10px"
+                @change="onRadioChange"
+              >
+                <a-radio value="1">鍏ㄦ枃</a-radio>
+                <a-radio value="2">鐪佺暐</a-radio>
+              </a-radio-group>
+              <a-popover position="bottom">
+                <a-button
+                  type="outline"
+                  class="button"
+                  style="margin-right: 10px"
+                >鎵归噺
+                  <icon-down style="margin-left: 4px"
+                  />
                 </a-button>
-                <a-popover position="bottom">
-                  <a-button type="outline" class="button" style="margin-right: 10px"><icon-sort /></a-button>
-                  <template #content>
-                    <a-radio-group v-model="available_int" direction="vertical" size="large" @change="onChangeavailable">
-                      <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>
-              </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>
-                  <div class="groupList-content" @click="groupListContentClick('1')" @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>
-
-                <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>
+                <template #content>
+                  <a-space direction="vertical">
+                    <a-checkbox
+                      :model-value="checkedAll"
+                      :indeterminate="indeterminate"
+                      @change="handleChangeAll"
+                      style="margin-left: 10px"
+                    >
+                      閫夋嫨鎵�鏈�
+                    </a-checkbox>
+                  </a-space>
+                  <a-divider style="margin: 10px 0" />
+                  <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(0)"
+                    >
+                      <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>
+              <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 />
+                </template>
+              </a-button>
+              <a-popover position="bottom">
+                <a-button
+                  type="outline"
+                  class="button"
+                  style="margin-right: 10px"
+                >
+                  <icon-sort
+                  />
+                </a-button>
+                <template #content>
+                  <a-radio-group
+                    v-model="available_int"
+                    direction="vertical"
+                    size="large"
+                    @change="onChangeavailable"
+                  >
+                    <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"
+                @canplaythrough="canplaythrough"
+              ></addDetails>
             </div>
           </div>
-          <eidtDetails ref="eidtDil"></eidtDetails>
-        </a-tab-pane>
-      </a-tabs>
+          <a-divider style="margin-top: 10px" />
+          <div class="groupMain">
+            <a-spin :loading="isLoading" :tip="tip">
+              <a-checkbox-group v-model="data" @change="handleChange">
+                <div
+                  class="groupList"
+                  :class="{
+                    groupActive: keyBg == index,
+                    groupNoActive: keyBg != index,
+                  }"
+                  v-for="(item, index) in listData"
+                  :key="index"
+                >
+                  <a-checkbox :value="item.chunk_id"></a-checkbox>
+                  <div
+                    class="groupList-content emphaRed"
+                    @click="groupListContentClick(index)"
+                    @dblclick="contentClick(item)"
+                    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>
+              </a-checkbox-group>
+            </a-spin>
+          </div>
+        </div>
+        <eidtDetails
+          ref="eidtDil"
+          :item="eidtDilinfo"
+          v-model:eidtDilVisible="eidtDilVisible"
+          @canplaythrough="canplaythrough"
+        ></eidtDetails>
+      </a-tab-pane>
+    </a-tabs>
   </a-modal>
 </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 addDetails from '@/views/dmx/knowledgeLib/addDetails.vue'
-import eidtDetails from '@/views/dmx/knowledgeLib/eidtDetails.vue'
+import {
+  kbdocumentchangeparser,
+  achunkCreate,
+  queryChunkList,
+  chunkSwitch,
+  chunkRm, achunkGet
+} from "@/api/kbList";
+import addDetails from "@/views/dmx/knowledgeLib/addDetails.vue";
+import eidtDetails from "@/views/dmx/knowledgeLib/eidtDetails.vue";
+
 const visible = ref(false);
 const loading = ref(false);
-const radio = ref('1');
-const keyBg = ref('');
+const radio = ref("1");
+const keyBg = ref("");
 const eidtDil = ref();
+const eidtDilVisible = ref(false);
+const eidtDilinfo = reactive({});
 
-const props =  defineProps(['kbtenantInfo','item','kbdetail'])
+const props = defineProps(["kbtenantInfo", "item", "kbdetail"]);
 // const emit =  defineEmits(['upTabdateItem'])
 
-let threshold = computed(()=>{
-  return form.threshold/100;
-})
+let threshold = computed(() => {
+  return form.threshold / 100;
+});
 
 const kbtenantInfo = props.kbtenantInfo;
 
-let  parser_ids = kbtenantInfo.parser_ids.split(',').map((item) => {
-  const [value1, value2] = item.split(':');
+let parser_ids = kbtenantInfo.parser_ids.split(",").map((item) => {
+  const [value1, value2] = item.split(":");
   return {
     name: value2,
-    value: value1,
+    value: value1
   };
 });
 
+// 杩囨护瑙f瀽鏂规硶
+
+const filterParserArr = [
+  'naive',
+  'qa',
+  'resume',
+  'manual',
+  'book',
+  'laws',
+  'one',
+]
+
+
+
+
+
+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,
+  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' +
-    '      {cluster_content}\n' +
-    '浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��',
+  prompt:
+    "璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n" +
+    "      {cluster_content}\n" +
+    "浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��"
 });
 const formRef = ref(null);
 const rules = {
   prompt: [
     {
       required: true,
-      message:'鎻愮ず璇嶄笉鍏佽涓虹┖',
-    },
-  ],
-}
-const formatter = (value) => {
-  return value / 100
+      message: "鎻愮ず璇嶄笉鍏佽涓虹┖"
+    }
+  ]
 };
-  function randomNumber() {
-    // 鐢熸垚涓�涓粙浜巑in鍜宮ax涔嬮棿鐨勯殢鏈烘暣鏁帮紙鍖呭惈min鍜宮ax锛�
-    const min = 1; // 鏈�灏忓��
-    const max = 10000; // 鏈�澶у��
-    form.random_seed = Math.floor(Math.random() * (max - min + 1)) + min;
-  }
 
-const handleSubmit = async ({values, errors}) => {
-  if(!errors){
+const listData = ref([]);
+
+const formatter = (value) => {
+  return value / 100;
+};
+
+function randomNumber() {
+  // 鐢熸垚涓�涓粙浜巑in鍜宮ax涔嬮棿鐨勯殢鏈烘暣鏁帮紙鍖呭惈min鍜宮ax锛�
+  const min = 1; // 鏈�灏忓��
+  const max = 10000; // 鏈�澶у��
+  form.random_seed = Math.floor(Math.random() * (max - min + 1)) + min;
+}
+
+const handleSubmit = async ({ values, errors }) => {
+  if (!errors) {
     let data = await kbdocumentchangeparser({
       parser_id: form.parser_id,
       doc_id: form.doc_id,
@@ -259,38 +468,56 @@
           max_token: form.max_token,
           threshold: form.threshold,
           max_cluster: form.max_cluster,
-          random_seed: form.random_seed,
+          random_seed: form.random_seed
         },
         chunk_token_num: form.chunk_token_num,
-        pages: [
-
-        ]
+        pages: []
       }
-    })
-    if(data.code == 0){
-      Message.success('閰嶇疆鎴愬姛');
-    }else{
-      Message.error('閰嶇疆澶辫触');
+    });
+    if (data.code == 0) {
+      Message.success("閰嶇疆鎴愬姛");
+    } else {
+      Message.error("閰嶇疆澶辫触");
     }
     visible.value = false;
   }
-}
+};
 
 const handleClick = () => {
   visible.value = true;
 };
 const handleCancel = () => {
   visible.value = false;
-}
+};
 
-const contentClick = (done) => {
-  eidtDil.value.handleClick();
-}
-const handleOpened =(el) => {
+const contentClick = async (item) => {
+  // Object.assign(eidtDilinfo, item);
+  // eidtDilVisible.value = true;
+  try {
+    const data = await achunkGet({
+      chunk_id: item.chunk_id
+    });
+
+    console.log(data.data);
+  } catch (error) {
+    Message.error("鑾峰彇澶辫触");
+  }
+
+
+};
+const handleOpened = (el) => {
   // console.log('props',props.kbtenantInfo);
-  // console.log('props',props.item);
+  console.log('props',props.item);
   // console.log('props',props.kbdetail);
-  console.log(parser_ids, 'parser_ids');
+  console.log(parser_ids, "parser_ids");
+  let parser_id = props.item.parser_id;
+  parser_ids.forEach((item) => {
+    if (item.name == parser_id) {
+      form.parser_id = item.value;
+    }
+  });
+
+
   // Object.assign(form,{
   //   name: '',// 鐢ㄦ埛鍚�
   //   nameJoin: '',// 鏄电О
@@ -299,96 +526,176 @@
   // });
   // formRef.value.resetFields();
   console.log(props.item.id);
-}
-
+};
 
 const onChangeRAPTOR = () => {
-
 };
 
-
-
-
-
-
-
-
-const indeterminate = ref(false)
-const checkedAll = ref(false)
-const data = ref([])
-const switchType = ref(false)
-const available_int = ref('')
+const indeterminate = ref(false);
+const checkedAll = ref(false);
+const data = ref([]);
+const switchType = ref(false);
+const available_int = ref("");
 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 = []
+    data.value = [];
   }
-}
+};
 
 const handleChange = (values) => {
-  if (values.length === 3) {
-    checkedAll.value = true
-    indeterminate.value = false;
-  } else if (values.length === 0) {
-    checkedAll.value = false
-    indeterminate.value = false;
-  } else {
-    checkedAll.value = false
-    indeterminate.value = true;
-  }
-}
+  data.value = values;
+};
 
+//鎵归噺鍚敤鍒犻櫎绂佺敤
+const addBlock = (type) => {
+  if (data.value.length == 0) {
+    Message.error("璇烽�夋嫨瑕佹搷浣滅殑鏁版嵁");
+    return;
+  }
+  if (type == 3) {
+    deleteChunk();
+  } else {
+    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("鎿嶄綔澶辫触");
+      }
+    });
+  }
+};
 
 const groupListContentClick = (value) => {
   keyBg.value = value;
-}
+};
 
+const onChangeavailable = () => {
+  getList();
+};
 
-const onChangeavailable = ()=>{
-  console.log(available_int.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 handleChangeStatus = ()=>{
-  console.log(switchType.value);
-}
+//鍚敤绂佺敤
+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("鏇存柊澶辫触");
+    }
+  });
+};
 
-onBeforeMount(()=>{
+//鍒犻櫎
+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("鍒犻櫎澶辫触");
+    }
+  });
+};
 
-})
-onMounted(()=>{
+onBeforeMount(() => {
+  getList();
+});
+onMounted(() => {
 
-
-})
+});
 </script>
 
 <style scoped lang="less">
-.parser{
+.parser {
   width: 100%;
-  ::v-deep .arco-btn-outline:hover, .arco-btn-outline, .arco-btn-outline[type='button']{
+
+  ::v-deep .arco-btn-outline:hover,
+  .arco-btn-outline,
+  .arco-btn-outline[type='button'] {
     color: #2a2a2b;
     border: 1px solid #2a2a2b;
   }
-  .button{
+
+  .button {
     //color: #2a2a2b!important;
   }
 }
-.groupMain{
+
+::-webkit-scrollbar {
+  display: none;
+}
+
+.groupMain {
   width: 100%;
   height: 500px;
   overflow: auto;
   display: flex;
   justify-content: center;
-  .groupList{
+
+  .groupList {
     display: flex;
     padding: 24px;
     border-radius: 8px;
@@ -396,20 +703,32 @@
     border: 1px solid #f0f0f0;
     margin-bottom: 20px;
     overflow: auto;
-    .groupList-content{
+
+    .groupList-content {
       width: 700px;
       //height: 100px;
       overflow: auto;
       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;
-
-
     }
   }
 }
-</style>
\ No newline at end of file
+
+: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