通用交互支持图片理解,上传图片

This commit is contained in:
junleea 2025-04-01 15:45:43 +08:00
parent b2545b84be
commit c46e36208f
1 changed files with 29 additions and 2 deletions

View File

@ -119,12 +119,12 @@
<el-col :span="1" style="text-align: center"> <el-col :span="1" style="text-align: center">
<el-button @click="handleSelectFileVisible"><el-icon><Files /></el-icon></el-button> <el-button @click="handleSelectFileVisible"><el-icon><Files /></el-icon></el-button>
</el-col> </el-col>
<el-col :span="1" style="text-align: center"> <!-- <el-col :span="1" style="text-align: center">
<el-button @click="handleUploadPicture"><el-icon><Picture /></el-icon></el-button> <el-button @click="handleUploadPicture"><el-icon><Picture /></el-icon></el-button>
</el-col> </el-col>
<el-col :span="1" style="text-align: center"> <el-col :span="1" style="text-align: center">
<el-button><el-icon><VideoCamera /></el-icon></el-button> <el-button><el-icon><VideoCamera /></el-icon></el-button>
</el-col> </el-col> -->
<!-- 已选文件一行显示 --> <!-- 已选文件一行显示 -->
<el-col :span="12" style="text-align: center"> <el-col :span="12" style="text-align: center">
<el-tag v-for="(file, index) in selectedFiles" :key="index" closable @close="removeFile(index)">{{ file.UserFileName }}</el-tag> <el-tag v-for="(file, index) in selectedFiles" :key="index" closable @close="removeFile(index)">{{ file.UserFileName }}</el-tag>
@ -146,6 +146,7 @@
v-model="searchFileQuery" v-model="searchFileQuery"
prefix-icon="el-icon-search" prefix-icon="el-icon-search"
/> />
<el-button @click="uploadMessageFile">上传文件</el-button>
<!-- 文件列表 --> <!-- 文件列表 -->
<div class="file-list"> <div class="file-list">
<el-checkbox-group v-model="selectedFiles"> <el-checkbox-group v-model="selectedFiles">
@ -173,6 +174,17 @@
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
<!-- 上传文件对话框 -->
<div>
<el-dialog
title="上传文件"
v-model="uploadFileVisible"
width="50%"
:before-close="handleUploadFileClose"
>
<UploadFile></UploadFile>
</el-dialog>
</div>
</template> </template>
@ -186,6 +198,7 @@ import { FindUserFileService } from "@/api/file";
import { Check, Loading, DocumentCopy } from "@element-plus/icons-vue"; import { Check, Loading, DocumentCopy } from "@element-plus/icons-vue";
import MarkdownIt from "markdown-it"; import MarkdownIt from "markdown-it";
import hljs from "highlight.js"; import hljs from "highlight.js";
import UploadFile from '@/components/upload-file.vue';
import { Session } from "@/types/session"; import { Session } from "@/types/session";
import { FindSessionService } from "@/api/session"; import { FindSessionService } from "@/api/session";
import { FindModelListByFunctionName } from "@/api/function"; import { FindModelListByFunctionName } from "@/api/function";
@ -236,6 +249,7 @@ const selectedFiles = ref<File[]>([]); // 用于存储已选文件
const selectFileVisible = ref(false); // const selectFileVisible = ref(false); //
const searchFileQuery = ref(""); // const searchFileQuery = ref(""); //
const filteredFiles = ref<File[]>([]); // const filteredFiles = ref<File[]>([]); //
const uploadFileVisible = ref(false); //
const renderMarkdown = (content: string) => { const renderMarkdown = (content: string) => {
return md.render(content); return md.render(content);
@ -263,12 +277,25 @@ const handleSelectFileVisible = async () => {
console.log("handleSelectFileVisible:", selectFileVisible.value); console.log("handleSelectFileVisible:", selectFileVisible.value);
}; };
const handleUploadFileClose= async () => {
uploadFileVisible.value = false; //
await getFileListData(); //
console.log("handleUploadFileClose:", uploadFileVisible.value);
};
const handleUploadPicture = () => { const handleUploadPicture = () => {
// //
// //
}; };
const uploadMessageFile = () => {
//
// API
uploadFileVisible.value = true; //
console.log("上传文件:", selectedFiles.value);
};
const handleSelectFileConfirm = () => { const handleSelectFileConfirm = () => {
// //
console.log("选中的文件:", selectedFiles.value); console.log("选中的文件:", selectedFiles.value);