ADD: 检测计划添加导入标识字段以及逻辑
This commit is contained in:
@@ -35,6 +35,7 @@ export namespace Plan {
|
||||
progress?: number; // 进度百分比,例如 75
|
||||
children?: ResPlan[];
|
||||
testConfig?: PlanTestConfig;
|
||||
importFlag?: number; // 导入标识,0-否,1-是
|
||||
}
|
||||
|
||||
// 检测计划 + 分页
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<el-col :span="10">
|
||||
<el-form-item :label-width="110" label="名称" prop="name">
|
||||
<el-input
|
||||
:disabled="allDisabled"
|
||||
v-model="formContent.name"
|
||||
autocomplete="off"
|
||||
maxlength="32"
|
||||
@@ -23,7 +24,7 @@
|
||||
<el-form-item v-if="selectByMode" :label-width="110" label="标准设备" prop="standardDevIds">
|
||||
<el-select
|
||||
v-model="formContent.standardDevIds"
|
||||
:disabled="planType == 2"
|
||||
:disabled="planType == 2 || allDisabled"
|
||||
:max-collapse-tags="2"
|
||||
clearable
|
||||
collapse-tags
|
||||
@@ -43,7 +44,7 @@
|
||||
<el-form-item v-if="selectByMode" :label-width="110" label="测试项" prop="testItems">
|
||||
<el-select
|
||||
v-model="formContent.testItems"
|
||||
:disabled="planType != 0"
|
||||
:disabled="planType != 0 || allDisabled"
|
||||
:max-collapse-tags="3"
|
||||
clearable
|
||||
collapse-tags
|
||||
@@ -63,6 +64,7 @@
|
||||
<el-select
|
||||
v-model="formContent.sourceIds"
|
||||
:multiple="selectByMode"
|
||||
:disabled="allDisabled"
|
||||
clearable
|
||||
collapse-tags
|
||||
filterable
|
||||
@@ -79,7 +81,7 @@
|
||||
<el-form-item :label-width="110" label="数据源" prop="datasourceIds">
|
||||
<el-select
|
||||
v-model="formContent.datasourceIds"
|
||||
:disabled="planType != 0"
|
||||
:disabled="planType != 0 || allDisabled"
|
||||
:max-collapse-tags="2"
|
||||
:multiple="selectByMode"
|
||||
autocomplete="off"
|
||||
@@ -100,7 +102,7 @@
|
||||
<el-form-item v-if="!selectByMode" :label-width="110" label="检测脚本" prop="scriptId">
|
||||
<el-select
|
||||
v-model="formContent.scriptId"
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
autocomplete="off"
|
||||
clearable
|
||||
placeholder="请选择检测脚本"
|
||||
@@ -116,7 +118,7 @@
|
||||
<el-form-item :label-width="110" label="误差体系" prop="errorSysId">
|
||||
<el-select
|
||||
v-model="formContent.errorSysId"
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
autocomplete="off"
|
||||
clearable
|
||||
filterable
|
||||
@@ -133,7 +135,7 @@
|
||||
<el-form-item :label-width="110" label="数据处理原则" prop="dataRule">
|
||||
<el-select
|
||||
v-model="formContent.dataRule"
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
autocomplete="off"
|
||||
clearable
|
||||
placeholder="请选择数据处理原则"
|
||||
@@ -147,7 +149,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="110" label="守时检测" prop="timeCheck">
|
||||
<el-radio-group v-model="formContent.timeCheck" :disabled="planType != 0">
|
||||
<el-radio-group v-model="formContent.timeCheck" :disabled="planType != 0 || allDisabled">
|
||||
<el-radio :value="1">是</el-radio>
|
||||
<el-radio :value="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
@@ -166,7 +168,7 @@
|
||||
>
|
||||
<el-select
|
||||
v-model="formContent.reportTemplateName"
|
||||
:disabled="planType != 0"
|
||||
:disabled="planType != 0 || allDisabled"
|
||||
autocomplete="off"
|
||||
placeholder="请选择报告模版"
|
||||
>
|
||||
@@ -220,7 +222,7 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-if="planType === 0" #left-footer>
|
||||
<template v-if="planType === 0 && !allDisabled" #left-footer>
|
||||
<el-button
|
||||
v-if="modeStore.currentMode !== '比对式'"
|
||||
v-auth.plan="'import'"
|
||||
@@ -244,7 +246,7 @@
|
||||
导入被检设备
|
||||
</el-button>
|
||||
</template>
|
||||
<template v-if="planType === 0" #right-footer>
|
||||
<template v-if="planType === 0 && !allDisabled" #right-footer>
|
||||
<el-text></el-text>
|
||||
</template>
|
||||
<template #left-empty>
|
||||
@@ -270,7 +272,7 @@
|
||||
prop="testConfig.maxTime"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig.maxTime"
|
||||
:precision="0"
|
||||
@@ -288,7 +290,7 @@
|
||||
prop="testConfig.waveRecord"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig.waveRecord"
|
||||
:precision="0"
|
||||
@@ -306,7 +308,7 @@
|
||||
prop="testConfig.realTime"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig.realTime"
|
||||
:precision="0"
|
||||
@@ -324,7 +326,7 @@
|
||||
prop="testConfig.statistics"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig.statistics"
|
||||
:precision="0"
|
||||
@@ -342,7 +344,7 @@
|
||||
prop="testConfig.flicker"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig.flicker"
|
||||
:precision="0"
|
||||
@@ -358,7 +360,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<template #footer v-if="!allDisabled">
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="close()">取 消</el-button>
|
||||
<el-button type="primary" @click="save()">确 定</el-button>
|
||||
@@ -432,7 +434,7 @@ const isSelectDisabled = ref(false)
|
||||
const planType = ref<number>(0)
|
||||
const subPlanBindStandardDev = ref<any>([]) //哪些标准设备已经被子计划绑定
|
||||
const activeNames = ref(['1'])
|
||||
|
||||
const allDisabled = ref(false)
|
||||
const generateData = () => {
|
||||
const manufacturerDict = dictStore.getDictData('Dev_Manufacturers')
|
||||
unboundPqDevList.value.forEach(i => {
|
||||
@@ -447,8 +449,8 @@ const generateData = () => {
|
||||
|
||||
const unboundData = unboundPqDevList.value.map((i: Device.ResPqDev) => ({
|
||||
key: i.id,
|
||||
label: JSON.stringify(i)
|
||||
//tips: i.description
|
||||
label: JSON.stringify(i),
|
||||
disabled: allDisabled.value
|
||||
}))
|
||||
boundPqDevList.value.forEach(i => {
|
||||
// 确保字段不为空且字典存在再进行查找
|
||||
@@ -463,7 +465,7 @@ const generateData = () => {
|
||||
key: i.id,
|
||||
label: JSON.stringify(i),
|
||||
//tips: i.description
|
||||
disabled: i.checkState != 0 || i.assign == 1
|
||||
disabled: i.checkState != 0 || i.assign == 1 || allDisabled.value
|
||||
}))
|
||||
allData.value = [...unboundData, ...boundData]
|
||||
}
|
||||
@@ -522,7 +524,8 @@ function useMetaInfo() {
|
||||
statistics: 0,
|
||||
flicker: 0,
|
||||
maxTime: 3
|
||||
}
|
||||
},
|
||||
importFlag: 0
|
||||
})
|
||||
return { dialogVisible, titleType, formContent }
|
||||
}
|
||||
@@ -569,7 +572,8 @@ const resetFormContent = () => {
|
||||
statistics: 0,
|
||||
flicker: 0,
|
||||
maxTime: 3
|
||||
}
|
||||
},
|
||||
importFlag: 0
|
||||
})
|
||||
}
|
||||
|
||||
@@ -579,6 +583,9 @@ let dialogTitle = computed(() => {
|
||||
} else if (titleType.value === 'add') {
|
||||
return '新增检测计划'
|
||||
} else {
|
||||
if (formContent && formContent.importFlag === 1) {
|
||||
return '检测计划信息'
|
||||
}
|
||||
return '编辑检测计划'
|
||||
}
|
||||
})
|
||||
@@ -736,7 +743,7 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
|
||||
if (sign == 'add') {
|
||||
resetFormContent()
|
||||
|
||||
allDisabled.value = false
|
||||
let pqSource_Result,
|
||||
PqScript_Result,
|
||||
PqErrSys_Result,
|
||||
@@ -818,6 +825,9 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
} else {
|
||||
isSelectDisabled.value = true
|
||||
}
|
||||
if (data.importFlag === 1) {
|
||||
allDisabled.value = true
|
||||
}
|
||||
}
|
||||
|
||||
Object.assign(formContent, { ...data })
|
||||
|
||||
@@ -65,14 +65,25 @@
|
||||
<!-- 表格操作 -->
|
||||
<template #operation="scope">
|
||||
<el-button
|
||||
v-if="scope.row.importFlag == 0"
|
||||
type="primary"
|
||||
v-auth.plan="'edit'"
|
||||
link
|
||||
:icon="EditPen"
|
||||
icon="EditPen"
|
||||
@click="openDialog('edit', scope.row)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.importFlag == 1"
|
||||
type="primary"
|
||||
v-auth.plan="'edit'"
|
||||
link
|
||||
icon="View"
|
||||
@click="openDialog('edit', scope.row)"
|
||||
>
|
||||
详情
|
||||
</el-button>
|
||||
<el-button type="primary" v-auth.plan="'delete'" link :icon="Delete" @click="handleDelete(scope.row)">
|
||||
删除
|
||||
</el-button>
|
||||
@@ -89,12 +100,12 @@
|
||||
<el-button
|
||||
type="primary"
|
||||
link
|
||||
icon="View"
|
||||
icon="Cpu"
|
||||
@click="openChildrenPlan(scope.row)"
|
||||
v-if="modeStore.currentMode == '比对式' && scope.row.fatherPlanId == 0"
|
||||
v-if="modeStore.currentMode == '比对式' && scope.row.importFlag == 1"
|
||||
v-auth.plan="'import_subplan'"
|
||||
>
|
||||
查看
|
||||
被检设备
|
||||
</el-button>
|
||||
<!-- <el-button type='primary' link :icon='List' @click='showDeviceOpen(scope.row)'>设备绑定</el-button> -->
|
||||
<el-button
|
||||
@@ -146,7 +157,7 @@
|
||||
<script setup lang="tsx" name="useProTable">
|
||||
import ProTable from '@/components/ProTable/index.vue'
|
||||
import type { ColumnProps, ProTableInstance } from '@/components/ProTable/interface'
|
||||
import { CirclePlus, Delete, Download, EditPen, List, Upload } from '@element-plus/icons-vue'
|
||||
import { CirclePlus, Delete, Download, List, Upload } from '@element-plus/icons-vue'
|
||||
import {
|
||||
deletePlan,
|
||||
downloadTemplate,
|
||||
|
||||
Reference in New Issue
Block a user