试验任务删除限制

This commit is contained in:
wangxk 2025-05-28 18:01:24 +08:00
parent bed568cd49
commit 9f31cd0e36
4 changed files with 85 additions and 42 deletions

View File

@ -230,3 +230,10 @@ export function selectTsNodesByTskeId(params:any){
}) })
} }
export function confirmDeleteNodes(params:any){
return request ({
url:'/experimentalData/ts-nodes/confirmDeleteNodes',
method:'post',
params:params,
})
}

View File

@ -40,3 +40,11 @@ export function deleteTsTaskByIds(queryParams: any) {
params: queryParams params: queryParams
}); });
} }
//查询是否可以删除
export function confirmDeleteTask(queryParams: any) {
return request({
url: '/experimentalData/tstask/confirmDeleteTask',
method: 'post',
params: queryParams
});
}

View File

@ -13,7 +13,7 @@ import { ElMessageBox, ElMessage, ElMain } from "element-plus";
import Page from '@/components/Pagination/page.vue'; import Page from '@/components/Pagination/page.vue';
import AudioPlayer from '@/components/file/preview/AudioPlayer.vue'; import AudioPlayer from '@/components/file/preview/AudioPlayer.vue';
import { batchDeleteReq } from "@/api/file-operator"; import { batchDeleteReq } from "@/api/file-operator";
import { tstaskList, obtaintestData, getTsNodesTree, addTsNodes, selectTsNodesByTskeId, updateTsNodes, deleteTsNodesById, tsFilesPage, addTsFiles, testDataScanById, updateTsFiles, deleteTsFilesById, listTsFiles, deleteTsFilesByIds, compress, Decompression, compare, downloadToLocal, uploadToBackup, addTsFile, list, moveFileFolder, copyFileFolder, startSimpleNavi, stopSimpleNavi } from "@/api/datamanagement"; import { tstaskList, obtaintestData, getTsNodesTree, confirmDeleteNodes,addTsNodes, selectTsNodesByTskeId, updateTsNodes, deleteTsNodesById, tsFilesPage, addTsFiles, testDataScanById, updateTsFiles, deleteTsFilesById, listTsFiles, deleteTsFilesByIds, compress, Decompression, compare, downloadToLocal, uploadToBackup, addTsFile, list, moveFileFolder, copyFileFolder, startSimpleNavi, stopSimpleNavi } from "@/api/datamanagement";
import ZUpload from '@/components/file/ZUpload.vue' import ZUpload from '@/components/file/ZUpload.vue'
import useFileUpload from "@/components/file/file/useFileUpload"; import useFileUpload from "@/components/file/file/useFileUpload";
import useHeaderStorageList from "@/components/header/useHeaderStorageList"; import useHeaderStorageList from "@/components/header/useHeaderStorageList";
@ -286,6 +286,8 @@ function delSubItem(row: any) {
} }
) )
.then(() => { .then(() => {
confirmDeleteNodes({id:row.nodeId}).then((res: any) => {
if (res.data.data.status == 1) {
loading.value = true loading.value = true
deleteTsNodesById({ id: row.nodeId, path: row.path }).then((res: any) => { deleteTsNodesById({ id: row.nodeId, path: row.path }).then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
@ -297,6 +299,12 @@ function delSubItem(row: any) {
} }
}) })
} else {
ElMessage.warning("该节点中含有已备份的文件,无法删除")
return
}
})
}) })

View File

@ -8,7 +8,7 @@ export default {
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import { ElMessage, ElMessageBox } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus'
import Page from '@/components/Pagination/page.vue' import Page from '@/components/Pagination/page.vue'
import { tstaskPage, addtsTask, updatetsTask, deleteTsTaskById, deleteTsTaskByIds } from "@/api/testtask"; import { tstaskPage, addtsTask, updatetsTask, deleteTsTaskById, deleteTsTaskByIds,confirmDeleteTask } from "@/api/testtask";
import { getDict } from '@/api/dict' import { getDict } from '@/api/dict'
// //
const tableData: any = ref([]); const tableData: any = ref([]);
@ -104,6 +104,8 @@ function delproject(row: any) {
} }
) )
.then(() => { .then(() => {
confirmDeleteTask({ ids: row.id }).then((res: any) => {
if (res.data.data.status == 1) {
loading.value = true loading.value = true
deleteTsTaskById({ id: row.id }).then((res: any) => { deleteTsTaskById({ id: row.id }).then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
@ -114,6 +116,11 @@ function delproject(row: any) {
}) })
} }
}) })
} else {
ElMessage.warning("试验任务中含有已备份的文件,无法删除")
return
}
})
}) })
} }
// //
@ -137,6 +144,8 @@ function delprojectArr() {
} }
) )
.then(() => { .then(() => {
confirmDeleteTask({ ids: ids.join(',') }).then((res: any) => {
if (res.data.data.status == 1) {
loading.value = true loading.value = true
deleteTsTaskByIds({ ids: ids.join(',') }).then((res: any) => { deleteTsTaskByIds({ ids: ids.join(',') }).then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
@ -147,6 +156,11 @@ function delprojectArr() {
getdata() getdata()
} }
}) })
} else {
ElMessage.warning("试验任务中含有已备份的文件,无法删除")
return
}
})
}) })
} }
@ -232,14 +246,14 @@ function typeName(arr: any, itemCode: any) {
}); });
return nameone return nameone
} }
const logqing= ref(false) const logqing = ref(false)
const logTxt = ref('') const logTxt = ref('')
function Loglist(row:any,title1:any){ function Loglist(row: any, title1: any) {
title.value = title1 title.value = title1
logqing.value = true logqing.value = true
logTxt.value = row logTxt.value = row
} }
function handleClose1(){ function handleClose1() {
logqing.value = false logqing.value = false
} }
</script> </script>
@ -308,7 +322,8 @@ function handleClose1(){
<!-- <span>{{ scope.row.testDescribe }}</span> --> <!-- <span>{{ scope.row.testDescribe }}</span> -->
<div class="ellipsis"> <div class="ellipsis">
<span class="single-line-ellipsis">{{ scope.row.testDescribe }}</span> <span class="single-line-ellipsis">{{ scope.row.testDescribe }}</span>
<img src="@/assets/MenuIcon/xqing.png" alt="" title="详情" @click="Loglist(scope.row.testDescribe,'试验描述详情')" style="cursor: pointer;" > <img src="@/assets/MenuIcon/xqing.png" alt="" title="详情"
@click="Loglist(scope.row.testDescribe, '试验描述详情')" style="cursor: pointer;">
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -317,7 +332,8 @@ function handleClose1(){
<!-- <span>{{ scope.row.testDescribe }}</span> --> <!-- <span>{{ scope.row.testDescribe }}</span> -->
<div class="ellipsis"> <div class="ellipsis">
<span class="single-line-ellipsis">{{ scope.row.sensorDescribe }}</span> <span class="single-line-ellipsis">{{ scope.row.sensorDescribe }}</span>
<img src="@/assets/MenuIcon/xqing.png" alt="" title="详情" @click="Loglist(scope.row.sensorDescribe,'传感器描述详情')" style="cursor: pointer;" > <img src="@/assets/MenuIcon/xqing.png" alt="" title="详情"
@click="Loglist(scope.row.sensorDescribe, '传感器描述详情')" style="cursor: pointer;">
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -342,8 +358,9 @@ function handleClose1(){
<el-form ref="ruleFormRef" style="max-width:100%" :model="projectForme" :rules="moderules" <el-form ref="ruleFormRef" style="max-width:100%" :model="projectForme" :rules="moderules"
label-width="auto" class="demo-ruleForm" status-icon> label-width="auto" class="demo-ruleForm" status-icon>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;"> <div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="任务编号" style="width: 50%;" > <el-form-item label="任务编号" style="width: 50%;">
<el-input v-model="projectForme.taskCode" maxlength="40" show-word-limit disabled style="width: 100%;" /> <el-input v-model="projectForme.taskCode" maxlength="40" show-word-limit disabled
style="width: 100%;" />
</el-form-item> </el-form-item>
<el-form-item label="任务名称" style="width: 50%;margin-left: 15px;"> <el-form-item label="任务名称" style="width: 50%;margin-left: 15px;">
<el-input v-model="projectForme.taskName" show-word-limit disabled /> <el-input v-model="projectForme.taskName" show-word-limit disabled />
@ -411,18 +428,20 @@ function handleClose1(){
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.texlog{ .texlog {
width: 100%; width: 100%;
padding: 10px; padding: 10px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 5px; border-radius: 5px;
} }
.ellipsis{
.ellipsis {
display: flex; display: flex;
width: 100%; width: 100%;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
.single-line-ellipsis { .single-line-ellipsis {
width: 270px; width: 270px;
/* 限制容器宽度 */ /* 限制容器宽度 */
@ -433,6 +452,7 @@ function handleClose1(){
text-overflow: ellipsis; text-overflow: ellipsis;
/* 使用省略号 */ /* 使用省略号 */
} }
.record-box { .record-box {
padding: 20px; padding: 20px;
width: 100%; width: 100%;