diff --git a/src/api/dataCenter/basicFile.js b/src/api/dataCenter/basicFile.js index e0f9e25b..88c3f49e 100644 --- a/src/api/dataCenter/basicFile.js +++ b/src/api/dataCenter/basicFile.js @@ -49,6 +49,15 @@ export function updateFile(data) { }) } +export function moveFile(data) { + return request({ + url: '/ai/dataSetBasicFile/moveFile', + method: 'post', + data: data + }) +} + + // 删除文件基础 export function delFile(fileId) { return request({ @@ -63,6 +72,13 @@ export function dataRecovery(fileId) { method: 'post', }) } +export function emptyRecycleBin() { + return request({ + url: '/ai/dataSetBasicFile/emptyRecycleBin', + method: 'post', + }) +} + diff --git a/src/views/dataCenter/dataSet/child/annotationTaskDialog.vue b/src/views/dataCenter/dataSet/child/annotationTaskDialog.vue index 551ce17d..60653e09 100644 --- a/src/views/dataCenter/dataSet/child/annotationTaskDialog.vue +++ b/src/views/dataCenter/dataSet/child/annotationTaskDialog.vue @@ -1,9 +1,11 @@ - - + @@ -71,74 +92,124 @@ import { add } from '@/api/dataCenter/releaseVersion' export default { dicts: ['ai_annotate_type'], - components: {selectPersonnelDialog}, + components: { selectPersonnelDialog }, props: { open: { type: Boolean, default: false, - required: true, + required: true }, - datasetId:{ + datasetNum:{ type: Number, default: 0, - required: true, + required: true + }, + datasetId: { + type: Number, + default: 0, + required: true } }, computed: { isOpen: { get() { - return this.open; + return this.open }, set(value) { - this.$emit('update:open', value); - }, - }, + this.$emit('update:open', value) + } + } }, data() { return { - tableData:[], - selectOpen:false, + tableData: [], + selectOpen: false, form: {}, // 初始化为空 - rules:{ - versionName:[ - { required: true, message: '版本名称不能为空', trigger: 'blur' }, + rules: { + versionName: [ + { required: true, message: '版本名称不能为空', trigger: 'blur' } ] } - }; + } }, methods: { + getReviewerMax(row) { + // 假设总数是 this.datasetNum,其他值可以从 tableData 动态计算 + const totalAssigned = this.tableData + .filter(item => item.type === '0' && item.id !== row.id) + .reduce((sum, item) => sum + item.num, 0); + return this.datasetNum - totalAssigned; + }, + getLabelingMax(row) { + const totalAssigned = this.tableData + .filter(item => item.type === '1' && item.id !== row.id) + .reduce((sum, item) => sum + item.num, 0); + return this.datasetNum - totalAssigned; + }, // 数据提交 submitForm() { - this.$refs["form"].validate(valid => { + this.$refs['form'].validate(valid => { if (valid) { - this.form.datasetId = this.datasetId; + this.form.datasetId = this.datasetId add(this.form).then(response => { - this.$modal.msgSuccess("发布成功"); - this.cancel(); + this.$modal.msgSuccess('发布成功') + this.cancel() }) } }) }, - updateData(data){ - console.log(data) + updateData(data) { + this.tableData = [] + let num = Math.max(data.selectReviewer.length,data.selectLabeling.length) + let minNum = Math.floor(this.datasetNum / num) // 基础分配 + if (minNum < 1) { + this.$modal.msgWarning('每人最少分配1张'); + return; + } + // 处理 Reviewer 的分配 + let reviewerRemainder = this.datasetNum % data.selectReviewer.length // 余数 + let reviewerNum = Math.floor(this.datasetNum / data.selectReviewer.length) // 基础分配 + data.selectReviewer.forEach(item => { + item.num = reviewerNum // 默认基础分配 + if (reviewerRemainder > 0) { + item.num += 1 // 如果有余数,额外分配 1 + reviewerRemainder-- // 减少余数 + } + this.tableData.push(item) + }) + + // 处理 Labeling 的分配 + let labelingRemainder = this.datasetNum % data.selectLabeling.length // 余数 + let labelingNum = Math.floor(this.datasetNum / data.selectLabeling.length) // 基础分配 + + data.selectLabeling.forEach(item => { + item.num = labelingNum // 默认基础分配 + if (labelingRemainder > 0) { + item.num += 1 // 如果有余数,额外分配 1 + labelingRemainder-- // 减少余数 + } + this.tableData.push(item) + }) + }, // 取消按钮 cancel() { - this.isOpen = false; - this.reset(); - this.$emit('dialog-cancel'); // 通知父组件 + this.isOpen = false + this.reset() + this.$emit('dialog-cancel') // 通知父组件 }, // 表单重置 reset() { - this.form = {}; // 清空表单 - this.$refs.form.resetFields(); // 调用 Element UI 的重置方法 + this.tableData=[]; + this.form = {} // 清空表单 + this.$refs.form.resetFields() // 调用 Element UI 的重置方法 }, // 处理取消事件 handleCancel() { - this.selectOpen = false; - }, - }, -}; + this.selectOpen = false + } + } +}