<script setup lang="ts">
|
import { defineProps,ref,defineEmits, onMounted } from 'vue';
|
import { Message } from '@arco-design/web-vue';
|
import { addSessionApi ,getDialogListApi }from '@/api/session';
|
const props=defineProps({
|
modalObj:Object
|
});
|
const conversation=ref({ dialog_id:'', conversation_desc:'' });
|
const dialogList=ref([]);
|
const emit = defineEmits(['addSession']);
|
const queryDialogList=async ()=>{
|
const { code, data } = await getDialogListApi();
|
if(code===200){
|
dialogList.value = data;
|
}
|
};
|
|
const rules = {
|
dialog_id: [
|
{
|
required: true,
|
message: '智能助手不能为空',
|
},
|
],
|
conversation_desc: [
|
{
|
required: true,
|
message: '描述不能为空',
|
}
|
]
|
}
|
onMounted(()=>{
|
queryDialogList();
|
});
|
const formRef = ref();
|
const handleOk=()=>{
|
formRef.value.validate().then(async(res)=>{
|
if(!res){
|
const { code }=await addSessionApi({ ...conversation.value });
|
if(code===200){
|
Message.success('添加成功');
|
emit('addSession');
|
setTimeout(()=>{
|
props.modalObj.add=false;
|
},500);
|
}else{
|
Message.warning('添加失败');
|
}
|
}
|
});
|
|
return false;
|
}
|
const destroyData = ()=>{
|
formRef.value.resetFields();
|
}
|
</script>
|
|
<template>
|
<div>
|
<a-modal v-model:visible="modalObj.add" @before-ok="handleOk" @cancel="modalObj.add=false" @before-close="destroyData">
|
<template #title>
|
新增会话
|
</template>
|
<a-form ref="formRef" :model="conversation" :rules="rules">
|
<a-form-item label="助手关联:" field="dialog_id" @submit="handleSubmit">
|
<a-select style="width: 80%" v-model="conversation.dialog_id" placeholder="请选择关联助手">
|
<a-option v-for="dialog in dialogList" :key="dialog.id" :value="dialog.id">{{dialog.name}}</a-option>
|
</a-select>
|
</a-form-item>
|
<a-form-item label="描述:" field="conversation_desc">
|
<a-textarea placeholder="请输入描述" :max-length="100" show-word-limit :auto-size="{minRows:4,maxRows:5}" v-model="conversation.conversation_desc" style="width: 80%"></a-textarea>
|
</a-form-item>
|
</a-form>
|
</a-modal>
|
</div>
|
</template>
|
|
<style scoped lang="scss">
|
|
</style>
|