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 |  837 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 501 insertions(+), 336 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/tool.vue b/src/views/dmx/knowledgeLib/tool.vue
index 0fba016..5049ec9 100644
--- a/src/views/dmx/knowledgeLib/tool.vue
+++ b/src/views/dmx/knowledgeLib/tool.vue
@@ -15,10 +15,13 @@
   >
     <a-tabs default-active-key="1">
       <a-tab-pane key="1">
-        <template #title> <icon-calendar /> 瑙f瀽鏂规硶 </template>
+        <template #title>
+          <icon-calendar />
+          瑙f瀽鏂规硶
+        </template>
         <div style="width: 100%">
           <div style="display: flex; align-items: center">
-            <div> 瑙f瀽鏂规硶: </div>
+            <div> 瑙f瀽鏂规硶:</div>
             <div style="margin-left: 10px">
               <a-select v-model="form.parser_id" placeholder="璇烽�夋嫨">
                 <a-option
@@ -38,22 +41,33 @@
               auto-label-width
               @submit="handleSubmit"
             >
-              <a-divider style="margin-top: 10px" />
+              <a-divider style="margin-top: 10px"
+                         v-if="
+                form.parser_id === 'naive'" />
               <a-form-item
                 field="slider"
-                label="鍧梩oken鏁�"
-                :rules="[
-                  { type: 'number', min: 1, message: 'slider is min than 1' },
-                ]"
-              >
+                label="鍧桾oken鏁�"
+                v-if="
+                form.parser_id === 'naive'">
                 <a-slider
                   v-model="form.chunk_token_num"
-                  :max="1000"
+                  :min="0"
+                  :max="2048"
                   show-input
                 />
               </a-form-item>
-              <a-divider style="margin-top: 10px" />
-              <a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐">
+              <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"
@@ -65,40 +79,38 @@
                 <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-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"
@@ -132,7 +144,8 @@
                     style="margin-left: 10px"
                     type="primary"
                     html-type="submit"
-                    >纭畾</a-button
+                  >纭畾
+                  </a-button
                   >
                 </div>
               </a-form-item>
@@ -141,7 +154,10 @@
         </div>
       </a-tab-pane>
       <a-tab-pane key="2">
-        <template #title> <icon-clock-circle /> 鍒涘缓瑙f瀽鍧� </template>
+        <template #title>
+          <icon-clock-circle />
+          鍒涘缓瑙f瀽鍧�
+        </template>
         <div class="details">
           <div class="details-header">
             <div
@@ -165,8 +181,10 @@
                   type="outline"
                   class="button"
                   style="margin-right: 10px"
-                  >鎵归噺<icon-down style="margin-left: 4px"
-                /></a-button>
+                >鎵归噺
+                  <icon-down style="margin-left: 4px"
+                  />
+                </a-button>
                 <template #content>
                   <a-space direction="vertical">
                     <a-checkbox
@@ -180,7 +198,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>
@@ -188,7 +211,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>
@@ -197,7 +225,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>
@@ -206,10 +239,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 />
@@ -220,8 +271,10 @@
                   type="outline"
                   class="button"
                   style="margin-right: 10px"
-                  ><icon-sort
-                /></a-button>
+                >
+                  <icon-sort
+                  />
+                </a-button>
                 <template #content>
                   <a-radio-group
                     v-model="available_int"
@@ -229,341 +282,453 @@
                     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 == index,
+                    groupNoActive: keyBg != index,
+                  }"
+                  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(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>
-                <div class="groupList-right">
-                  <a-switch
-                    v-model="switchType"
-                    checked-value="1"
-                    unchecked-value="0"
-                    @change="handleChangeStatus()"
-                  />
-                </div>
-              </div>
-            </a-checkbox-group>
-          </div>
-          <a-divider style="margin-top: 10px" />
-          <div class="groupMain">
-            <a-checkbox-group v-model="data" @change="handleChange">
-              <div class="groupList">
-                <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">
-                <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>
-              <div class="groupList-right">
-                <a-switch
-                  v-model="switchType"
-                  checked-value="1"
-                  unchecked-value="0"
-                  @change="handleChangeStatus()"
-                />
-              </div>
-            </a-checkbox-group>
+              </a-checkbox-group>
+            </a-spin>
           </div>
         </div>
-        <eidtDetails ref="eidtDil"></eidtDetails>
+        <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 { 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';
-  const visible = ref(false);
-  const loading = ref(false);
-  const radio = ref('1');
-  const keyBg = ref('');
-  const eidtDil = ref();
+import {
+  onMounted,
+  onBeforeMount,
+  reactive,
+  ref,
+  computed,
+  watch
+} from "vue";
+import { Message } from "@arco-design/web-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 props = defineProps(['kbtenantInfo', 'item', 'kbdetail']);
-  // const emit =  defineEmits(['upTabdateItem'])
+const visible = ref(false);
+const loading = ref(false);
+const radio = ref("1");
+const keyBg = ref("");
+const eidtDil = ref();
+const eidtDilVisible = ref(false);
+const eidtDilinfo = reactive({});
 
-  let threshold = computed(() => {
-    return form.threshold / 100;
-  });
+const props = defineProps(["kbtenantInfo", "item", "kbdetail"]);
+// const emit =  defineEmits(['upTabdateItem'])
 
-  const kbtenantInfo = props.kbtenantInfo;
+let threshold = computed(() => {
+  return form.threshold / 100;
+});
 
-  let parser_ids = kbtenantInfo.parser_ids.split(',').map((item) => {
-    const [value1, value2] = item.split(':');
-    return {
-      name: value2,
-      value: value1,
-    };
-  });
+const kbtenantInfo = props.kbtenantInfo;
 
-  const form = reactive({
-    parser_id: props.item.parser_id,
-    doc_id: props.item.id,
-    max_token: 698,
-    threshold: 30,
-    max_cluster: 233,
-    random_seed: 1500,
-    chunk_token_num: 128,
-    use_raptor: false,
-    pages: {},
-    prompt:
-      '璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n' +
-      '      {cluster_content}\n' +
-      '浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��',
-  });
-  const formRef = ref(null);
-  const rules = {
-    prompt: [
-      {
-        required: true,
-        message: '鎻愮ず璇嶄笉鍏佽涓虹┖',
-      },
-    ],
+let parser_ids = kbtenantInfo.parser_ids.split(",").map((item) => {
+  const [value1, value2] = item.split(":");
+  return {
+    name: value2,
+    value: value1
   };
-  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;
+});
+
+// 杩囨护瑙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: '',
+  doc_id: props.item.id,
+  max_token: 698,
+  threshold: 0.3,
+  max_cluster: 233,
+  random_seed: 1500,
+  chunk_token_num: 128,
+  use_raptor: false,
+  keywords: "",
+  pages: {},
+  prompt:
+    "璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n" +
+    "      {cluster_content}\n" +
+    "浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��"
+});
+const formRef = ref(null);
+const rules = {
+  prompt: [
+    {
+      required: true,
+      message: "鎻愮ず璇嶄笉鍏佽涓虹┖"
+    }
+  ]
+};
+
+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,
+      parser_config: {
+        raptor: {
+          use_raptor: form.use_raptor,
+          prompt: form.prompt,
+          max_token: form.max_token,
+          threshold: form.threshold,
+          max_cluster: form.max_cluster,
+          random_seed: form.random_seed
+        },
+        chunk_token_num: form.chunk_token_num,
+        pages: []
+      }
+    });
+    if (data.code == 0) {
+      Message.success("閰嶇疆鎴愬姛");
+    } else {
+      Message.error("閰嶇疆澶辫触");
+    }
+    visible.value = false;
+  }
+};
+
+const handleClick = () => {
+  visible.value = true;
+};
+const handleCancel = () => {
+  visible.value = false;
+};
+
+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 handleSubmit = async ({ values, errors }) => {
-    if (!errors) {
-      let data = await kbdocumentchangeparser({
-        parser_id: form.parser_id,
-        doc_id: form.doc_id,
-        parser_config: {
-          raptor: {
-            use_raptor: form.use_raptor,
-            prompt: form.prompt,
-            max_token: form.max_token,
-            threshold: form.threshold,
-            max_cluster: form.max_cluster,
-            random_seed: form.random_seed,
-          },
-          chunk_token_num: form.chunk_token_num,
-          pages: [],
-        },
-      });
-      if (data.code == 0) {
-        Message.success('閰嶇疆鎴愬姛');
+
+};
+const handleOpened = (el) => {
+  // console.log('props',props.kbtenantInfo);
+  console.log('props',props.item);
+  // console.log('props',props.kbdetail);
+  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: '',// 鏄电О
+  //   post: '',// 宀椾綅
+  //   txt: '',// 澶囨敞
+  // });
+  // 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 onRadioChange = () => {
+  console.log(radio.value);
+};
+//鎵归噺鎿嶄綔
+const handleChangeAll = (value) => {
+  indeterminate.value = false;
+  if (value) {
+    checkedAll.value = true;
+    listData.value.forEach((item) => {
+      data.value.push(item.chunk_id);
+    });
+  } else {
+    checkedAll.value = false;
+    data.value = [];
+  }
+};
+
+const handleChange = (values) => {
+  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('閰嶇疆澶辫触');
+        Message.error("鎿嶄綔澶辫触");
       }
-      visible.value = false;
+    });
+  }
+};
+
+const groupListContentClick = (value) => {
+  keyBg.value = value;
+};
+
+const onChangeavailable = () => {
+  getList();
+};
+
+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 handleClick = () => {
-    visible.value = true;
+//鍚敤绂佺敤
+const updateChunkStatus = (val) => {
+  let params = {
+    chunk_ids: [val.chunk_id],
+    available_int: val.available_int,
+    doc_id: props.item.id
   };
-  const handleCancel = () => {
-    visible.value = false;
-  };
-
-  const contentClick = (done) => {
-    eidtDil.value.handleClick();
-  };
-  const handleOpened = (el) => {
-    // console.log('props',props.kbtenantInfo);
-    // console.log('props',props.item);
-    // console.log('props',props.kbdetail);
-    console.log(parser_ids, 'parser_ids');
-    // Object.assign(form,{
-    //   name: '',// 鐢ㄦ埛鍚�
-    //   nameJoin: '',// 鏄电О
-    //   post: '',// 宀椾綅
-    //   txt: '',// 澶囨敞
-    // });
-    // 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 onRadioChange = () => {
-    console.log(radio.value);
-  };
-  const handleChangeAll = (value) => {
-    indeterminate.value = false;
-    if (value) {
-      checkedAll.value = true;
-      data.value = ['1', '2', '3'];
+  chunkSwitch(params).then((res) => {
+    console.log(res);
+    if (res.code == 0) {
+      Message.success("鏇存柊鎴愬姛");
+      getList();
     } else {
-      checkedAll.value = false;
-      data.value = [];
+      Message.error("鏇存柊澶辫触");
     }
-  };
+  });
+};
 
-  const handleChange = (values) => {
-    if (values.length === 3) {
-      checkedAll.value = true;
-      indeterminate.value = false;
-    } else if (values.length === 0) {
-      checkedAll.value = false;
-      indeterminate.value = false;
+//鍒犻櫎
+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 {
-      checkedAll.value = false;
-      indeterminate.value = true;
+      Message.error("鍒犻櫎澶辫触");
     }
-  };
+  });
+};
 
-  const groupListContentClick = (value) => {
-    keyBg.value = value;
-  };
+onBeforeMount(() => {
+  getList();
+});
+onMounted(() => {
 
-  const onChangeavailable = () => {
-    console.log(available_int.value);
-  };
-
-  const handleChangeStatus = () => {
-    console.log(switchType.value);
-  };
-
-  onBeforeMount(() => {});
-  onMounted(() => {});
+});
 </script>
 
 <style scoped lang="less">
-  .parser{
-    width: 100%;
-    ::v-deep .arco-btn-outline:hover, .arco-btn-outline, .arco-btn-outline[type='button']{
+.parser {
+  width: 100%;
+
+  ::v-deep .arco-btn-outline:hover,
+  .arco-btn-outline,
+  .arco-btn-outline[type='button'] {
+    color: #2a2a2b;
+    border: 1px solid #2a2a2b;
+  }
+
+  .button {
+    //color: #2a2a2b!important;
+  }
+}
+
+::-webkit-scrollbar {
+  display: none;
+}
+
+.groupMain {
+  width: 100%;
+  height: 500px;
+  overflow: auto;
+  display: flex;
+  justify-content: center;
+
+  .groupList {
+    display: flex;
+    padding: 24px;
+    border-radius: 8px;
+    //background: #eff8ff;
+    border: 1px solid #f0f0f0;
+    margin-bottom: 20px;
+    overflow: auto;
+
+    .groupList-content {
+      width: 700px;
+      //height: 100px;
+      overflow: auto;
+      box-sizing: border-box;
+      margin: 0;
+      padding: 0;
       color: #2a2a2b;
-      border: 1px solid #2a2a2b;
-    }
-    .button{
-      //color: #2a2a2b!important;
+      font-size: 14px;
+      font-family: Inter;
+      position: relative;
     }
   }
-  .groupMain{
-    width: 100%;
-    height: 500px;
-    overflow: auto;
-    display: flex;
-    justify-content: center;
-    .groupList{
-      display: flex;
-      padding: 24px;
-      border-radius: 8px;
-      //background: #eff8ff;
-      border: 1px solid var(--color-neutral-3);
-      margin-bottom: 20px;
-      overflow: auto;
-      .groupList-content{
-        width: 700px;
-        //height: 100px;
-        overflow: auto;
-        box-sizing: border-box;
-        margin: 0;
-        padding: 0;
-        color: var(--color-text-1);
-        font-size: 14px;
-        font-family: Inter;
-        position: relative;
+}
 
+:deep(.emphaRed em) {
+  color: red !important;
+}
 
-      }
-    }
-    .groupMain {
-      width: 100%;
-      height: 500px;
-      overflow: auto;
-      display: flex;
-      justify-content: center;
-      .groupList {
-        display: flex;
-        padding: 24px;
-        border-radius: 8px;
-        //background: #eff8ff;
-        border: 1px solid #f0f0f0;
-        margin-bottom: 20px;
-        overflow: auto;
-        .groupList-content {
-          width: 700px;
-          //height: 100px;
-          overflow: auto;
-          box-sizing: border-box;
-          margin: 0;
-          padding: 0;
-          color: rgba(0, 0, 0, 0.88);
-          font-size: 14px;
-          font-family: Inter;
-          position: relative;
-        }
-      }
-    }
+.groupActive {
+  background: #eff8ff;
+}
+
+.groupNoActive {
+  background: var(--color-bg-1);
+  color: var(--color-text-1);
+}
 </style>

--
Gitblit v1.8.0