存储空间和项目管理,试验任务管理关联

This commit is contained in:
wangxk 2025-06-18 09:22:05 +08:00
parent 7bcfe180ad
commit f722ecea6e
2 changed files with 54 additions and 15 deletions

View File

@ -9,6 +9,7 @@ import { onMounted, ref } from "vue";
import { ElMessage, ElMessageBox } from 'element-plus'
import Page from '@/components/Pagination/page.vue'
import { projectPage, addSdproject, updateSdproject, deleteSdprojectById, deleteSdprojectByIds } from "@/api/project";
import { storagesBytype } from "@/api/storage";
import { getDict } from '@/api/dict'
import { id } from "element-plus/es/locale";
//
@ -47,10 +48,14 @@ function getdata() {
}
//
const dictType = ref([])
const storagesarr = ref([])
function getDictOne() {
getDict({ dictcode: 'zxxmlx' }).then((res: any) => {
dictType.value = res.data
})
storagesBytype({type:'local'}).then((res: any) => {
storagesarr.value = res.data
})
}
//
const title = ref("")
@ -67,7 +72,7 @@ function addproject() {
projectProps: "",//
projectTime: "",//
projectType: ""//
, localStorageId: "1"
, localStorageId: ""
}
formitemarr.value.length = 0
}
@ -155,7 +160,7 @@ const projectForme: any = ref({
projectProps: "",//
projectTime: "",//
projectType: ""//
, localStorageId: "1"
, localStorageId: ""
})
//
async function submitForm(formEl: any) {
@ -192,9 +197,10 @@ async function submitForm(formEl: any) {
//
const moderules = ref({
projectCode: [{ required: true, message: "请输入项目编号", trigger: "blur" }],
projectType: [{ required: true, message: "请输入项目类型", trigger: "blur" }],
projectType: [{ required: true, message: "请选择项目类型", trigger: "change" }],
projectName: [{ required: true, message: "请输入项目名称", trigger: "blur" }],
projectTime: [{ type: 'date', required: true, message: "请选择项目启动时间", trigger: "change" }],
localStorageId:[{ required: true, message: "请选择存储空间", trigger: "change" }]
});
onMounted(() => {
getdata()
@ -378,6 +384,12 @@ function attributeclose(){
format="YYYY-MM-DD HH:mm:ss" style="width:100%;" value-format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
</div>
<el-form-item label="存储空间绑定" prop="localStorageId" >
<el-select v-model="projectForme.localStorageId" clearable placeholder=" " :disabled="projectForme.id">
<el-option v-for="item in storagesarr" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label=" 项目描述">
<el-input v-model="projectForme.description" :rows="25" type="textarea" show-word-limit />
</el-form-item>

View File

@ -9,6 +9,7 @@ import { onMounted, ref } from "vue";
import { ElMessage, ElMessageBox } from 'element-plus'
import Page from '@/components/Pagination/page.vue'
import { tstaskPage, addtsTask, updatetsTask, deleteTsTaskById, deleteTsTaskByIds, confirmDeleteTask } from "@/api/testtask";
import { storagesBytype } from "@/api/storage";
import { getDict } from '@/api/dict'
//
const tableData: any = ref([]);
@ -93,8 +94,8 @@ function addproject() {
testDescribe: "",//
sensorDescribe: "",//
taskProps: "",//
localStorageId: '1',
backupStorageId: '2'
localStorageId: '',
backupStorageId: ''
}
formitemarr.value.length = 0
}
@ -200,8 +201,8 @@ const projectForme: any = ref({
testDescribe: "",//
sensorDescribe: "",//
taskProps: "",//
localStorageId: '1',
backupStorageId: '2'
localStorageId: '',
backupStorageId: ''
})
//
async function submitForm(formEl: any) {
@ -246,6 +247,8 @@ const moderules = ref({
taskType: [{ required: true, message: "请选择任务类型", trigger: "change" }],
taskDate: [{ required: true, message: "请选择任务时间", trigger: "change" }],
taskPlace: [{ required: true, message: "请输入任务地点", trigger: "blur" }],
localStorageId: [{ required: true, message: "请选择本地存储空间", trigger: "change" }],
backupStorageId: [{ required: true, message: "请选择minio存储空间", trigger: "change" }],
});
onMounted(() => {
getdata()
@ -253,10 +256,18 @@ onMounted(() => {
});
//
const dictType = ref([])
const localarr = ref([])
const minioarr = ref([])
function getDictOne() {
getDict({ dictcode: 'taskType' }).then((res: any) => {
dictType.value = res.data
})
storagesBytype({ type: 'local' }).then((res: any) => {
localarr.value = res.data
})
storagesBytype({ type: 'minio' }).then((res: any) => {
minioarr.value = res.data
})
}
//
function typeName(arr: any, itemCode: any) {
@ -456,7 +467,7 @@ function attributeclose() {
</div>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="任务类型" prop="taskType" style="width: 50%;">
<el-select v-model="projectForme.taskType" clearable placeholder=" " @change="getdata()">
<el-select v-model="projectForme.taskType" clearable placeholder=" ">
<el-option v-for="item in dictType" :key="item.itemcode" :label="item.dictname"
:value="item.itemcode" />
</el-select>
@ -467,6 +478,22 @@ function attributeclose() {
value-format="YYYY-MM-DD" />
</el-form-item>
</div>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="本地存储空间" prop="localStorageId" style="width: 50%;">
<el-select v-model="projectForme.localStorageId" clearable placeholder=" "
:disabled="projectForme.id">
<el-option v-for="item in localarr" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="minio存储空间" prop="backupStorageId" style="width: 50%;margin-left: 15px;">
<el-select v-model="projectForme.backupStorageId" clearable placeholder=" "
:disabled="projectForme.id">
<el-option v-for="item in minioarr" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
</div>
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<el-form-item label="任务地点" prop="taskPlace" style="width: 50%;">
<el-input v-model="projectForme.taskPlace" maxlength="500" show-word-limit />