|  |  | 
 |  |  |  | 
 |  |  | <template> | 
 |  |  |   <a-button type="primary" @click="handleClick" style="margin-left: 10px"> | 
 |  |  |     <template #icon> | 
 |  |  |       <icon-plus /> | 
 |  |  |     </template> | 
 |  |  |   </a-button> | 
 |  |  |   <a-modal v-model:visible="visible" title="创建知识库" @before-open="handleOpened" @cancel="handleCancel" :footer="false" title-align="start"> | 
 |  |  |     <a-form ref="formRef" :rules="rules" :model="form" @submit="handleSubmit" > | 
 |  |  |       <a-form-item field="name" label="名称"> | 
 |  |  |         <a-input v-model="form.name" placeholder="请输入名称"/> | 
 |  |  |   <a-modal | 
 |  |  |     v-model:visible="visible" | 
 |  |  |     title="创建解析块" | 
 |  |  |     @before-open="handleOpened" | 
 |  |  |     @cancel="handleCancel" | 
 |  |  |     :footer="false" | 
 |  |  |     title-align="start" | 
 |  |  |   > | 
 |  |  |     <a-form | 
 |  |  |       ref="formRef" | 
 |  |  |       :rules="rules" | 
 |  |  |       :model="form" | 
 |  |  |       @submit="handleSubmit" | 
 |  |  |       layout="vertical" | 
 |  |  |     > | 
 |  |  |       <a-form-item field="content_with_weight" label="解析块"> | 
 |  |  |         <a-textarea | 
 |  |  |           v-model="form.content_with_weight" | 
 |  |  |           placeholder="" | 
 |  |  |           style="height: 100px" | 
 |  |  |           auto-size | 
 |  |  |         /> | 
 |  |  |       </a-form-item> | 
 |  |  |       <a-form-item field="important_kwd_key" label="关键词 *"> | 
 |  |  |         <div style="width: auto"> | 
 |  |  |           <a-tag | 
 |  |  |             v-for="(item, index) in form.important_kwd" | 
 |  |  |             :key="index" | 
 |  |  |             closable | 
 |  |  |             bordered | 
 |  |  |             @close="form.important_kwd.splice(index, 1)" | 
 |  |  |             style="margin-right: 10px" | 
 |  |  |           > | 
 |  |  |             {{ item }} | 
 |  |  |           </a-tag> | 
 |  |  |  | 
 |  |  |           <a-input | 
 |  |  |             ref="formInput" | 
 |  |  |             v-show="keyVisible" | 
 |  |  |             v-model="form.important_kwd_key" | 
 |  |  |             placeholder="" | 
 |  |  |             size="small" | 
 |  |  |             style="width: 80px; margin-right: 16px" | 
 |  |  |             @blur="inputChange" | 
 |  |  |           /> | 
 |  |  |           <a-button type="dashed" shape="circle" size="small" @click="addKey"> | 
 |  |  |             <icon-plus /> | 
 |  |  |           </a-button> | 
 |  |  |         </div> | 
 |  |  |       </a-form-item> | 
 |  |  |  | 
 |  |  |       <a-form-item> | 
 |  |  |         <div style="width: 100%;text-align: right"> | 
 |  |  |         <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> | 
 |  |  |           <a-button style="margin-left: 10px" type="primary" html-type="submit" | 
 |  |  |             >确定</a-button | 
 |  |  |           > | 
 |  |  |         </div> | 
 |  |  |       </a-form-item> | 
 |  |  |     </a-form> | 
 |  |  | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script lang="ts" setup> | 
 |  |  | import { onMounted ,onBeforeMount, reactive, ref } from "vue"; | 
 |  |  |   import { onMounted, onBeforeMount, reactive, ref } from 'vue'; | 
 |  |  |   import { achunkCreate } from '@/api/kbList'; | 
 |  |  |  | 
 |  |  | const visible = ref(false); | 
 |  |  | const loading = ref(false); | 
 |  |  | const form = reactive({ | 
 |  |  |   name: '',// 用户名 | 
 |  |  |   nameJoin: '',// 昵称 | 
 |  |  |   post: '',// 岗位 | 
 |  |  |   txt: '',// 备注 | 
 |  |  | }); | 
 |  |  | const formRef = ref(null); | 
 |  |  |  | 
 |  |  | const rules = { | 
 |  |  |   name: [ | 
 |  |  |     { | 
 |  |  |       required: true, | 
 |  |  |       message:'名称不允许为空', | 
 |  |  |     }, | 
 |  |  |   ], | 
 |  |  | } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | const handleSubmit = ({values, errors}) => { | 
 |  |  |   console.log('values:', values, '\nerrors:', errors) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const handleClick = () => { | 
 |  |  |   visible.value = true; | 
 |  |  | }; | 
 |  |  | const handleBeforeOk = (done) => { | 
 |  |  |     formRef.value.validate().then(res => { | 
 |  |  |       console.log('form:', form) | 
 |  |  |       if (!form.name) { | 
 |  |  |         done(false) | 
 |  |  |       }else { | 
 |  |  |         console.log('请求数据'); | 
 |  |  |  | 
 |  |  |       } | 
 |  |  |     }) | 
 |  |  | }; | 
 |  |  | const handleCancel = () => { | 
 |  |  |   visible.value = false; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const handleOpened =(el) => { | 
 |  |  |   Object.assign(form,{ | 
 |  |  |     name: '',// 用户名 | 
 |  |  |     nameJoin: '',// 昵称 | 
 |  |  |     post: '',// 岗位 | 
 |  |  |     txt: '',// 备注 | 
 |  |  |   const props = defineProps(['item']); | 
 |  |  |   const emit = defineEmits(['canplaythrough']); | 
 |  |  |   const visible = ref(false); | 
 |  |  |   const keyVisible = ref(false); | 
 |  |  |   const loading = ref(false); | 
 |  |  |   const form = reactive({ | 
 |  |  |     content_with_weight: '', | 
 |  |  |     important_kwd: [], | 
 |  |  |     important_kwd_key: '', | 
 |  |  |   }); | 
 |  |  |   formRef.value.resetFields(); | 
 |  |  | } | 
 |  |  |   const formRef = ref(null); | 
 |  |  |   const formInput = ref(null); | 
 |  |  |   const rules = { | 
 |  |  |     content_with_weight: [ | 
 |  |  |       { | 
 |  |  |         required: true, | 
 |  |  |         message: '请输入值!', | 
 |  |  |       }, | 
 |  |  |     ], | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  | onBeforeMount(()=>{ | 
 |  |  |   const handleSubmit = async ({ values, errors }) => { | 
 |  |  |     if (!errors) { | 
 |  |  |       const res = await achunkCreate({ | 
 |  |  |         content_with_weight: values.content_with_weight, | 
 |  |  |         important_kwd: values.important_kwd, | 
 |  |  |         doc_id: props.item.id, | 
 |  |  |       }); | 
 |  |  |       if (res.code === 0) { | 
 |  |  |         visible.value = false; | 
 |  |  |         emit('canplaythrough'); | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  | }) | 
 |  |  | onMounted(()=>{ | 
 |  |  |   const handleClick = () => { | 
 |  |  |     visible.value = true; | 
 |  |  |   }; | 
 |  |  |   const handleBeforeOk = (done) => { | 
 |  |  |     formRef.value.validate().then((res) => { | 
 |  |  |       console.log('form:', form); | 
 |  |  |     }); | 
 |  |  |   }; | 
 |  |  |   const handleCancel = () => { | 
 |  |  |     visible.value = false; | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  |   const handleOpened = (el) => { | 
 |  |  |     Object.assign(form, { | 
 |  |  |       content_with_weight: '', | 
 |  |  |       important_kwd: [], | 
 |  |  |       important_kwd_key: '', | 
 |  |  |     }); | 
 |  |  |     formRef.value.resetFields(); | 
 |  |  |     keyVisible.value = false; | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  | }) | 
 |  |  |   const addKey = () => { | 
 |  |  |     form.important_kwd_key = ''; | 
 |  |  |     formInput.value.focus(); | 
 |  |  |     keyVisible.value = true; | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  |   const inputChange = (e) => { | 
 |  |  |     if ( | 
 |  |  |       !form.important_kwd.includes(form.important_kwd_key) && | 
 |  |  |       form.important_kwd_key | 
 |  |  |     ) { | 
 |  |  |       form.important_kwd.push(form.important_kwd_key); | 
 |  |  |     } else { | 
 |  |  |     } | 
 |  |  |     keyVisible.value = false; | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  |   onBeforeMount(() => {}); | 
 |  |  |   onMounted(() => {}); | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <script lang="ts"> | 
 |  |  | export default { | 
 |  |  |   name: 'add', | 
 |  |  |   methods: { | 
 |  |  |  | 
 |  |  |   } | 
 |  |  | }; | 
 |  |  | </script> |