<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> 
 |