人脸识别与大模型问答
This commit is contained in:
parent
746d819d7f
commit
b8ad37a16a
|
|
@ -57,6 +57,18 @@ export function uploadImgFiles(formData) {
|
|||
})
|
||||
}
|
||||
|
||||
// 删除菜单
|
||||
export function uploadZipFiles(formData) {
|
||||
return request({
|
||||
url: '/ai/dataSet/uploadZipFiles',
|
||||
method: 'post',
|
||||
data: formData,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -20,20 +20,26 @@ export function getModelsById(modelId) {
|
|||
|
||||
|
||||
// 查询菜单列表
|
||||
export function insertModel(data) {
|
||||
export function insertModel(formData) {
|
||||
return request({
|
||||
url: '/ai/dataSet/insertModel',
|
||||
method: 'post',
|
||||
data: data
|
||||
data: formData,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 查询菜单列表
|
||||
export function updateModel(data) {
|
||||
export function updateModel(formData) {
|
||||
return request({
|
||||
url: '/ai/dataSet/updateModel',
|
||||
method: 'post',
|
||||
data: data
|
||||
data: formData,
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -90,11 +90,37 @@ export const constantRoutes = [
|
|||
component: () => import('@/views/dataSet/dataSetCategory/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/dataSetAlgorithm',
|
||||
component: () => import('@/views/dataSet/dataSetCategory/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/dataSetFile',
|
||||
component: () => import('@/views/dataSet/dataSetFile/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/dataSetLabel',
|
||||
component: () => import('@/views/dataSet/dataSetLabel/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/dataSetLog',
|
||||
component: () => import('@/views/dataSet/dataSetLog/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/dataSetModel',
|
||||
component: () => import('@/views/dataSet/dataSetModel/index'),
|
||||
hidden: true
|
||||
},
|
||||
{
|
||||
path: '/dataSetTask',
|
||||
component: () => import('@/views/dataSet/dataSetTask/index'),
|
||||
hidden: true
|
||||
},
|
||||
|
||||
{
|
||||
path: '/dataSetFile/dataset',
|
||||
name: 'details',
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ service.interceptors.response.use(res => {
|
|||
}).then(() => {
|
||||
isRelogin.show = false
|
||||
store.dispatch('LogOut').then(() => {
|
||||
location.href = '/index'
|
||||
location.href = '/login'
|
||||
})
|
||||
}).catch(() => {
|
||||
isRelogin.show = false
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
<el-col :span="5" style="text-align: left">
|
||||
<el-checkbox v-model="checked" style="margin-right: 5%;color: #FFFFFF" @change="changItem">全选</el-checkbox>
|
||||
<el-button size="mini" @click="handleUpdate()">移动文件</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleDelete">删除文件</el-button>
|
||||
<el-button type="primary" size="mini" @click="handleDelete()">删除文件</el-button>
|
||||
<el-button type="primary" size="mini" @click="back()">返回</el-button>
|
||||
</el-col>
|
||||
<el-col :span="14" style="text-align: center">
|
||||
|
|
@ -320,26 +320,24 @@ export default {
|
|||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.fileIds = [];
|
||||
Object.values(this.backLayout).forEach((item) => {
|
||||
if (item.checked) {
|
||||
this.fileIds.push(item.fileId);
|
||||
}
|
||||
})
|
||||
if (row) {
|
||||
this.fileIds.push(row.fileId);
|
||||
} else {
|
||||
Object.values(this.backLayout).forEach((item) => {
|
||||
if (item.checked) {
|
||||
this.fileIds.push(item.fileId);
|
||||
}
|
||||
})
|
||||
}
|
||||
if (!row && this.fileIds.length === 0) {
|
||||
this.$modal.msgWarning("请选择数据");
|
||||
return;
|
||||
}
|
||||
this.reset();
|
||||
this.getAllDatasets();
|
||||
this.open = true;
|
||||
this.title = "选择数据集";
|
||||
this.fileId = row.fileId;
|
||||
},
|
||||
handleCopy(row) {
|
||||
this.reset();
|
||||
this.getTreeselect();
|
||||
getDatasetById(row.datasetId).then(response => {
|
||||
this.form = response.data;
|
||||
this.form.datasetId = undefined;
|
||||
this.open = true;
|
||||
this.title = "复制数据";
|
||||
});
|
||||
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm: function () {
|
||||
|
|
@ -348,10 +346,9 @@ export default {
|
|||
return
|
||||
}
|
||||
let data = {
|
||||
fileIds: this.fileId || this.fileIds,
|
||||
fileIds: this.fileIds,
|
||||
datasetId: this.datasetId
|
||||
}
|
||||
console.log(data);
|
||||
updateFile(data).then(response => {
|
||||
this.checked = false;
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
|
|
@ -367,6 +364,10 @@ export default {
|
|||
this.fileIds.push(item.fileId);
|
||||
}
|
||||
})
|
||||
if (!row && this.fileIds.length === 0) {
|
||||
this.$modal.msgWarning("请选择数据");
|
||||
return;
|
||||
}
|
||||
const fileIds = row.fileId || this.fileIds
|
||||
this.$modal.confirm('是否确认删除数据项?').then(function () {
|
||||
return deleteFile(fileIds);
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@
|
|||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="数据集名称" prop="datasetName">
|
||||
<el-input v-model="form.datasetName" placeholder="请输入数据集名称"/>
|
||||
<el-input v-model="form.datasetName" placeholder="请输入数据集名称" maxlength="30"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
|
|
@ -130,7 +130,7 @@
|
|||
type="textarea"
|
||||
:autosize="{ minRows: 2, maxRows: 4}"
|
||||
placeholder="请输入内容"
|
||||
v-model="form.description"></el-input>
|
||||
v-model="form.description" maxlength="200"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -299,9 +299,8 @@ import {
|
|||
} from "@/api/dataSet/dataSetFile"
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
||||
import {getCategories, uploadImgFiles} from "@/api/dataSet/dataSet";
|
||||
import {getCategories, uploadImgFiles, uploadZipFiles} from "@/api/dataSet/dataSet";
|
||||
import {parseTime} from "@/utils/ruoyi";
|
||||
import {Loading} from "element-ui";
|
||||
|
||||
export default {
|
||||
name: "index",
|
||||
|
|
@ -471,7 +470,7 @@ export default {
|
|||
getTreeselect() {
|
||||
getCategories({}).then(response => {
|
||||
this.menuOptions = [];
|
||||
const menu = {datasetId: 0, categoryName: '主类目', children: []};
|
||||
const menu = {categoryId: 0, categoryName: '主类目', children: []};
|
||||
menu.children = this.handleTree(response.data, "categoryId");
|
||||
this.menuOptions.push(menu);
|
||||
});
|
||||
|
|
@ -579,7 +578,6 @@ export default {
|
|||
}
|
||||
,
|
||||
submitFile() {
|
||||
|
||||
if (!this.selectedDataset) {
|
||||
this.$modal.msgWarning("请选择数据集");
|
||||
return;
|
||||
|
|
@ -589,7 +587,7 @@ export default {
|
|||
let formData = new FormData();
|
||||
formData.append('datasetId', this.selectedDataset);
|
||||
if (this.fileImgList.length === 0) {
|
||||
this.$modal.msgWarning("文件");
|
||||
this.$modal.msgWarning("请选择文件");
|
||||
return;
|
||||
}
|
||||
Object.values(this.fileImgList).forEach((file) => {
|
||||
|
|
@ -602,6 +600,22 @@ export default {
|
|||
this.getList();
|
||||
})
|
||||
} else {
|
||||
let formData = new FormData();
|
||||
formData.append('datasetId', this.selectedDataset);
|
||||
if (this.fileZipList.length === 0) {
|
||||
this.$modal.msgWarning("请选择文件");
|
||||
return;
|
||||
}
|
||||
Object.values(this.fileZipList).forEach((file) => {
|
||||
formData.append('files', file.raw);
|
||||
});
|
||||
uploadZipFiles(formData).then(response => {
|
||||
this.$modal.closeLoading();
|
||||
this.$modal.msgSuccess("上传成功");
|
||||
this.openFile = false;
|
||||
this.getList();
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -53,13 +53,19 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="模型文件" min-width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleDetails(scope.row)">下载</el-button>
|
||||
<el-button size="mini" type="text"
|
||||
@click="downloadFile('https://largesrevice.oss-cn-beijing.aliyuncs.com/'+scope.row.modelAddress,'')">
|
||||
下载
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="使用手册" min-width="120" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" @click="handleDetails(scope.row)">下载</el-button>
|
||||
<el-button size="mini" type="text" @click="handleDetails(scope.row)">查看</el-button>
|
||||
<el-button size="mini" type="text"
|
||||
@click="downloadFile('https://largesrevice.oss-cn-beijing.aliyuncs.com/'+scope.row.userGuide,'')">
|
||||
下载
|
||||
</el-button>
|
||||
<!-- <el-button size="mini" type="text" @click="downloadFile('https://largesrevice.oss-cn-beijing.aliyuncs.com/'+scope.row.userGuide,'')">查看</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="120" align="center">
|
||||
|
|
@ -348,14 +354,27 @@ export default {
|
|||
submitForm: function () {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
console.log(this.form)
|
||||
let formData = new FormData();
|
||||
for (let key in this.form) {
|
||||
if (this.form.hasOwnProperty(key)) {
|
||||
formData.append(key, this.form[key]);
|
||||
}
|
||||
}
|
||||
Object.values(this.fileModelList).forEach((item) => {
|
||||
formData.append("modelFile", item.raw)
|
||||
})
|
||||
Object.values(this.fileUserManualList).forEach((item) => {
|
||||
formData.append("userGuideFile", item.raw)
|
||||
})
|
||||
if (this.form.modelId != undefined) {
|
||||
updateModel(this.form).then(response => {
|
||||
updateModel(formData).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
insertModel(this.form).then(response => {
|
||||
insertModel(formData).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
|
|
@ -373,9 +392,14 @@ export default {
|
|||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {
|
||||
});
|
||||
},
|
||||
handleDetails(row) {
|
||||
|
||||
}, downloadFile(url, filename) {
|
||||
var element = document.createElement('a');
|
||||
element.href = url;
|
||||
element.download = filename;
|
||||
element.style.display = 'none';
|
||||
document.body.appendChild(element);
|
||||
element.click(); // 模拟点击下载
|
||||
element.parentNode.removeChild(element); // 清理DOM元素
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,17 @@
|
|||
<template>
|
||||
<div class="body-container">
|
||||
<el-menu class="el-menu-demo" mode="horizontal"
|
||||
style="position: absolute;top:50px;left: 50px; background-color: transparent;width: 50%;font-size: 20px;border-bottom:none">
|
||||
<el-submenu index="1" style="background-color: transparent">
|
||||
<template slot="title">样本库</template>
|
||||
<el-menu-item index="2-1" @click="handleClick('/dataSetCategory');">样本类型管理</el-menu-item>
|
||||
<el-menu-item index="2-2" @click="handleClick('/dataSetFile');">数据集管理</el-menu-item>
|
||||
<el-menu-item index="2-2" @click="handleClick('/dataSetTask');">标注任务分配</el-menu-item>
|
||||
<el-menu-item index="2-2" @click="handleClick('/dataSetLog');">标注日志</el-menu-item>
|
||||
<el-menu-item index="2-3" @click="handleClick('/dataSetModel');">模型管理</el-menu-item>
|
||||
<el-menu-item index="2-3" @click="handleClick('/dataSetAlgorithm');">算法评价</el-menu-item>
|
||||
</el-submenu>
|
||||
</el-menu>
|
||||
<div id="main">
|
||||
<div id="main-left">
|
||||
<div id="left-top">
|
||||
|
|
@ -47,6 +59,15 @@ export default {
|
|||
introVideo,
|
||||
routeIcon,
|
||||
rectAccessCountByMonth,
|
||||
},
|
||||
methods:{
|
||||
handleClick(route) {
|
||||
if (route === 'showPopup') {
|
||||
this.showPopup();
|
||||
} else {
|
||||
this.$router.push(route);
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
Loading…
Reference in New Issue