人脸识别与大模型问答
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({
|
return request({
|
||||||
url: '/ai/dataSet/insertModel',
|
url: '/ai/dataSet/insertModel',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data
|
data: formData,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded'
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询菜单列表
|
// 查询菜单列表
|
||||||
export function updateModel(data) {
|
export function updateModel(formData) {
|
||||||
return request({
|
return request({
|
||||||
url: '/ai/dataSet/updateModel',
|
url: '/ai/dataSet/updateModel',
|
||||||
method: 'post',
|
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'),
|
component: () => import('@/views/dataSet/dataSetCategory/index'),
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/dataSetAlgorithm',
|
||||||
|
component: () => import('@/views/dataSet/dataSetCategory/index'),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/dataSetFile',
|
path: '/dataSetFile',
|
||||||
component: () => import('@/views/dataSet/dataSetFile/index'),
|
component: () => import('@/views/dataSet/dataSetFile/index'),
|
||||||
hidden: true
|
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',
|
path: '/dataSetFile/dataset',
|
||||||
name: 'details',
|
name: 'details',
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ service.interceptors.response.use(res => {
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
isRelogin.show = false
|
isRelogin.show = false
|
||||||
store.dispatch('LogOut').then(() => {
|
store.dispatch('LogOut').then(() => {
|
||||||
location.href = '/index'
|
location.href = '/login'
|
||||||
})
|
})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
isRelogin.show = false
|
isRelogin.show = false
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
<el-col :span="5" style="text-align: left">
|
<el-col :span="5" style="text-align: left">
|
||||||
<el-checkbox v-model="checked" style="margin-right: 5%;color: #FFFFFF" @change="changItem">全选</el-checkbox>
|
<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 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-button type="primary" size="mini" @click="back()">返回</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="14" style="text-align: center">
|
<el-col :span="14" style="text-align: center">
|
||||||
|
|
@ -320,26 +320,24 @@ export default {
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.fileIds = [];
|
this.fileIds = [];
|
||||||
|
if (row) {
|
||||||
|
this.fileIds.push(row.fileId);
|
||||||
|
} else {
|
||||||
Object.values(this.backLayout).forEach((item) => {
|
Object.values(this.backLayout).forEach((item) => {
|
||||||
if (item.checked) {
|
if (item.checked) {
|
||||||
this.fileIds.push(item.fileId);
|
this.fileIds.push(item.fileId);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
if (!row && this.fileIds.length === 0) {
|
||||||
|
this.$modal.msgWarning("请选择数据");
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.reset();
|
this.reset();
|
||||||
this.getAllDatasets();
|
this.getAllDatasets();
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "选择数据集";
|
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 () {
|
submitForm: function () {
|
||||||
|
|
@ -348,10 +346,9 @@ export default {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let data = {
|
let data = {
|
||||||
fileIds: this.fileId || this.fileIds,
|
fileIds: this.fileIds,
|
||||||
datasetId: this.datasetId
|
datasetId: this.datasetId
|
||||||
}
|
}
|
||||||
console.log(data);
|
|
||||||
updateFile(data).then(response => {
|
updateFile(data).then(response => {
|
||||||
this.checked = false;
|
this.checked = false;
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
|
@ -367,6 +364,10 @@ export default {
|
||||||
this.fileIds.push(item.fileId);
|
this.fileIds.push(item.fileId);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
if (!row && this.fileIds.length === 0) {
|
||||||
|
this.$modal.msgWarning("请选择数据");
|
||||||
|
return;
|
||||||
|
}
|
||||||
const fileIds = row.fileId || this.fileIds
|
const fileIds = row.fileId || this.fileIds
|
||||||
this.$modal.confirm('是否确认删除数据项?').then(function () {
|
this.$modal.confirm('是否确认删除数据项?').then(function () {
|
||||||
return deleteFile(fileIds);
|
return deleteFile(fileIds);
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="数据集名称" prop="datasetName">
|
<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-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
|
|
@ -130,7 +130,7 @@
|
||||||
type="textarea"
|
type="textarea"
|
||||||
:autosize="{ minRows: 2, maxRows: 4}"
|
:autosize="{ minRows: 2, maxRows: 4}"
|
||||||
placeholder="请输入内容"
|
placeholder="请输入内容"
|
||||||
v-model="form.description"></el-input>
|
v-model="form.description" maxlength="200"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -299,9 +299,8 @@ import {
|
||||||
} from "@/api/dataSet/dataSetFile"
|
} from "@/api/dataSet/dataSetFile"
|
||||||
import Treeselect from "@riophae/vue-treeselect";
|
import Treeselect from "@riophae/vue-treeselect";
|
||||||
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
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 {parseTime} from "@/utils/ruoyi";
|
||||||
import {Loading} from "element-ui";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "index",
|
name: "index",
|
||||||
|
|
@ -471,7 +470,7 @@ export default {
|
||||||
getTreeselect() {
|
getTreeselect() {
|
||||||
getCategories({}).then(response => {
|
getCategories({}).then(response => {
|
||||||
this.menuOptions = [];
|
this.menuOptions = [];
|
||||||
const menu = {datasetId: 0, categoryName: '主类目', children: []};
|
const menu = {categoryId: 0, categoryName: '主类目', children: []};
|
||||||
menu.children = this.handleTree(response.data, "categoryId");
|
menu.children = this.handleTree(response.data, "categoryId");
|
||||||
this.menuOptions.push(menu);
|
this.menuOptions.push(menu);
|
||||||
});
|
});
|
||||||
|
|
@ -579,7 +578,6 @@ export default {
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
submitFile() {
|
submitFile() {
|
||||||
|
|
||||||
if (!this.selectedDataset) {
|
if (!this.selectedDataset) {
|
||||||
this.$modal.msgWarning("请选择数据集");
|
this.$modal.msgWarning("请选择数据集");
|
||||||
return;
|
return;
|
||||||
|
|
@ -589,7 +587,7 @@ export default {
|
||||||
let formData = new FormData();
|
let formData = new FormData();
|
||||||
formData.append('datasetId', this.selectedDataset);
|
formData.append('datasetId', this.selectedDataset);
|
||||||
if (this.fileImgList.length === 0) {
|
if (this.fileImgList.length === 0) {
|
||||||
this.$modal.msgWarning("文件");
|
this.$modal.msgWarning("请选择文件");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Object.values(this.fileImgList).forEach((file) => {
|
Object.values(this.fileImgList).forEach((file) => {
|
||||||
|
|
@ -602,6 +600,22 @@ export default {
|
||||||
this.getList();
|
this.getList();
|
||||||
})
|
})
|
||||||
} else {
|
} 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>
|
||||||
<el-table-column label="模型文件" min-width="120" align="center">
|
<el-table-column label="模型文件" min-width="120" align="center">
|
||||||
<template slot-scope="scope">
|
<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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="使用手册" min-width="120" align="center">
|
<el-table-column label="使用手册" min-width="120" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button size="mini" type="text" @click="handleDetails(scope.row)">下载</el-button>
|
<el-button size="mini" type="text"
|
||||||
<el-button size="mini" type="text" @click="handleDetails(scope.row)">查看</el-button>
|
@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>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" min-width="120" align="center">
|
<el-table-column label="操作" min-width="120" align="center">
|
||||||
|
|
@ -348,14 +354,27 @@ export default {
|
||||||
submitForm: function () {
|
submitForm: function () {
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (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) {
|
if (this.form.modelId != undefined) {
|
||||||
updateModel(this.form).then(response => {
|
updateModel(formData).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
insertModel(this.form).then(response => {
|
insertModel(formData).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
@ -373,9 +392,14 @@ export default {
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
});
|
});
|
||||||
},
|
}, downloadFile(url, filename) {
|
||||||
handleDetails(row) {
|
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>
|
<template>
|
||||||
<div class="body-container">
|
<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">
|
||||||
<div id="main-left">
|
<div id="main-left">
|
||||||
<div id="left-top">
|
<div id="left-top">
|
||||||
|
|
@ -47,6 +59,15 @@ export default {
|
||||||
introVideo,
|
introVideo,
|
||||||
routeIcon,
|
routeIcon,
|
||||||
rectAccessCountByMonth,
|
rectAccessCountByMonth,
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
handleClick(route) {
|
||||||
|
if (route === 'showPopup') {
|
||||||
|
this.showPopup();
|
||||||
|
} else {
|
||||||
|
this.$router.push(route);
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue