| <template> | 
|   <a-modal | 
|     v-model:visible="addTabVisible" | 
|     title="添加模式" | 
|     @before-open="handleOpened" | 
|     @cancel="handleCancel" | 
|     :footer="false" | 
|     title-align="start" | 
|     width="600px" | 
|   > | 
|     <a-form | 
|       ref="formRef" | 
|       :rules="rules" | 
|       :model="form" | 
|       @submit="handleSubmit" | 
|       :style="{ width: '90%', margin: '0 auto' }" | 
|       layout="vertical" | 
|     > | 
|       <a-form-item field="name" label="模型名称"> | 
|         <a-input v-model="form.name" placeholder="请输入模型名称" /> | 
|       </a-form-item> | 
|       <a-form-item field="describe" label="模型描述"> | 
|         <a-textarea placeholder="请输入模型描述" allow-clear /> | 
|       </a-form-item> | 
|   | 
|       <a-form-item field="section" label="模型图片"> | 
|         <a-space direction="vertical" :style="{ width: '100%' }"> | 
|           <Upload | 
|             :limit="1" | 
|             @update:fileList="updateFileList" | 
|             :oploadUrl="uploadAction" | 
|             @success="handleChange" | 
|           ></Upload> | 
|         </a-space> | 
|       </a-form-item> | 
|       <a-form-item> | 
|         <div style="width: 100%; text-align: right"> | 
|           <a-button @click="addTabVisible = false">取消</a-button> | 
|           <a-button style="margin-left: 10px" type="primary" html-type="submit" | 
|             >确定</a-button | 
|           > | 
|         </div> | 
|       </a-form-item> | 
|     </a-form> | 
|   </a-modal> | 
| </template> | 
|   | 
| <script lang="ts" setup> | 
|   import { onMounted, onBeforeMount, reactive, ref } from 'vue'; | 
|   | 
|   const addTabVisible = defineModel('tabShow'); | 
|   const loading = ref(false); | 
|   const props = defineProps({ | 
|     task_id: { | 
|       type: Number, | 
|       default: null, | 
|     }, | 
|   }); | 
|   | 
|   const form = reactive({ | 
|     size: 'medium', | 
|     name: '', | 
|     describe: '', | 
|     age: undefined, | 
|     section: '0', | 
|     province: 'haidian', | 
|     options: [], | 
|     date: '', | 
|     time: '', | 
|     radio: 'radio one', | 
|     slider: 5, | 
|     score: 5, | 
|     switch: false, | 
|     multiSelect: ['section one'], | 
|     treeSelect: '', | 
|     raptor: false, | 
|     prompt: | 
|       '请总结以下段落。 小心数字,不要编造。 段落如下:\n' + | 
|       '      {cluster_content}\n' + | 
|       '以上就是你需要总结的内容。', | 
|   }); | 
|   const formRef = ref(null); | 
|   | 
|   const rules = { | 
|     name: [ | 
|       { | 
|         required: true, | 
|         message: '名称不允许为空', | 
|       }, | 
|     ], | 
|     describe: [ | 
|       { | 
|         required: true, | 
|         message: '描述不允许为空', | 
|       }, | 
|     ], | 
|   }; | 
|   | 
|   const handleSubmit = ({ values, errors }) => { | 
|     console.log('values:', values, '\nerrors:', errors); | 
|   }; | 
|   | 
|   const handleClick = () => { | 
|     addTabVisible.value = true; | 
|   }; | 
|   const handleBeforeOk = (done) => { | 
|     formRef.value.validate().then((res) => { | 
|       console.log('form:', form); | 
|       if (!form.name) { | 
|         done(false); | 
|       } else { | 
|         console.log('请求数据'); | 
|       } | 
|     }); | 
|   }; | 
|   const handleCancel = () => { | 
|     addTabVisible.value = false; | 
|   }; | 
|   //图片上传 | 
|   const fileList = ref([]); | 
|   const imageUrls = ref([]); | 
|   const uploadAction = ref('/api/v1/llm/upload'); | 
|   const updateFileList = (newFileList) => { | 
|     fileList.value = newFileList; | 
|   }; | 
|   const handleChange = (urls) => { | 
|     console.log(urls, 9999); | 
|   }; | 
|   | 
|   const handleOpened = (el) => { | 
|     Object.assign(form, { | 
|       name: '', // 用户名 | 
|       nameJoin: '', // 昵称 | 
|       post: '', // 岗位 | 
|       txt: '', // 备注 | 
|     }); | 
|     formRef.value.resetFields(); | 
|   }; | 
|   | 
|   const file = ref(); | 
|   | 
|   const onChange = (_, currentFile) => { | 
|     file.value = { | 
|       ...currentFile, | 
|       // url: URL.createObjectURL(currentFile.file), | 
|     }; | 
|   }; | 
|   const onProgress = (currentFile) => { | 
|     file.value = currentFile; | 
|   }; | 
|   | 
|   onBeforeMount(() => {}); | 
|   onMounted(() => {}); | 
| </script> | 
|   | 
| <script lang="ts"> | 
|   export default { | 
|     name: 'add', | 
|     methods: {}, | 
|   }; | 
| </script> |