UPDATE: 1、测试项改成检测项;
2、检测项勾选闪变添加提示;
3、检测项由误差体系反推为下拉框让用户多选,默认全选;
4、修改检测计划有子计划后部分字段不可编辑;
This commit is contained in:
@@ -41,17 +41,18 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="selectByMode" :label-width="110" label="测试项" prop="testItems">
|
||||
<el-form-item v-if="selectByMode" :label-width="110" label="检测项" prop="testItems">
|
||||
<el-select
|
||||
v-model="formContent.testItems"
|
||||
:disabled="planType != 0 || allDisabled"
|
||||
:disabled="planType != 0 || allDisabled || !canEdited"
|
||||
:max-collapse-tags="1"
|
||||
clearable
|
||||
collapse-tags
|
||||
collapse-tags-tooltip
|
||||
filterable
|
||||
multiple
|
||||
placeholder="请选择测试项"
|
||||
placeholder="请选择检测项"
|
||||
@blur="handleTestItemChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="(option, index) in secondLevelOptions"
|
||||
@@ -122,7 +123,7 @@
|
||||
<el-form-item :label-width="110" label="误差体系" prop="errorSysId">
|
||||
<el-select
|
||||
v-model="formContent.errorSysId"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled || !canEdited"
|
||||
autocomplete="off"
|
||||
clearable
|
||||
filterable
|
||||
@@ -140,7 +141,7 @@
|
||||
<el-form-item :label-width="110" label="数据处理原则" prop="dataRule">
|
||||
<el-select
|
||||
v-model="formContent.dataRule"
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled || !canEdited"
|
||||
autocomplete="off"
|
||||
clearable
|
||||
placeholder="请选择数据处理原则"
|
||||
@@ -154,7 +155,10 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label-width="110" label="守时检测" prop="timeCheck">
|
||||
<el-radio-group v-model="formContent.timeCheck" :disabled="planType != 0 || allDisabled">
|
||||
<el-radio-group
|
||||
v-model="formContent.timeCheck"
|
||||
:disabled="planType != 0 || allDisabled || !canEdited"
|
||||
>
|
||||
<el-radio :value="1">是</el-radio>
|
||||
<el-radio :value="0">否</el-radio>
|
||||
</el-radio-group>
|
||||
@@ -173,7 +177,7 @@
|
||||
>
|
||||
<el-select
|
||||
v-model="formContent.reportTemplateName"
|
||||
:disabled="planType != 0 || allDisabled"
|
||||
:disabled="planType != 0 || allDisabled || !canEdited"
|
||||
autocomplete="off"
|
||||
placeholder="请选择报告模版"
|
||||
>
|
||||
@@ -188,7 +192,7 @@
|
||||
<el-form-item v-if="selectByMode" :label-width="110" label="项目负责人" prop="leader">
|
||||
<el-select
|
||||
v-model="formContent.leader"
|
||||
:disabled="planType != 0 || allDisabled"
|
||||
:disabled="planType != 0 || allDisabled || !canEdited"
|
||||
clearable
|
||||
autocomplete="off"
|
||||
placeholder="请选择项目负责人"
|
||||
@@ -278,7 +282,7 @@
|
||||
prop="testConfig.maxTime"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled || !canEdited"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig!.maxTime"
|
||||
:precision="0"
|
||||
@@ -296,7 +300,7 @@
|
||||
prop="testConfig.waveRecord"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled || !canEdited"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig!.waveRecord"
|
||||
:precision="0"
|
||||
@@ -314,7 +318,7 @@
|
||||
prop="testConfig.realTime"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled || !canEdited"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig!.realTime"
|
||||
:precision="0"
|
||||
@@ -332,7 +336,7 @@
|
||||
prop="testConfig.statistics"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled || !canEdited"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig!.statistics"
|
||||
:precision="0"
|
||||
@@ -350,7 +354,7 @@
|
||||
prop="testConfig.flicker"
|
||||
>
|
||||
<el-input-number
|
||||
:disabled="isSelectDisabled || allDisabled"
|
||||
:disabled="isSelectDisabled || allDisabled || !canEdited"
|
||||
style="width: 240px"
|
||||
v-model="formContent.testConfig!.flicker"
|
||||
:precision="0"
|
||||
@@ -434,6 +438,7 @@ const unboundPqDevList = ref<Device.ResPqDev[]>([]) //指定模式下所有未
|
||||
const boundPqDevList = ref<Device.ResPqDev[]>([]) //根据检测计划id查询出所有已绑定的设备
|
||||
const devData = ref<any[]>([])
|
||||
const isSelectDisabled = ref(false)
|
||||
const canEdited = ref(true)
|
||||
const planType = ref<number>(0)
|
||||
const subPlanBindStandardDev = ref<any>([]) //哪些标准设备已经被子计划绑定
|
||||
const activeNames = ref(['1'])
|
||||
@@ -611,7 +616,7 @@ const baseRules: Record<string, Array<FormItemRule>> = {
|
||||
errorSysId: [{ required: true, message: '误差体系必选!', trigger: 'change' }],
|
||||
dataRule: [{ required: true, message: '数据处理原则必选!', trigger: 'change' }],
|
||||
standardDevIds: [{ required: true, message: '标准设备必选!', trigger: 'change' }],
|
||||
testItems: [{ required: true, message: '测试项必选!', trigger: 'change' }],
|
||||
testItems: [{ required: true, message: '检测项必选!', trigger: 'change' }],
|
||||
'testConfig.maxTime': [{ required: true, message: '检测最大次数必填!', trigger: 'blur' }],
|
||||
'testConfig.waveRecord': [{ required: true, message: '录波数据有效组数必填!', trigger: 'blur' }],
|
||||
'testConfig.realTime': [{ required: true, message: '实时数据有效组数必填!', trigger: 'blur' }],
|
||||
@@ -721,6 +726,7 @@ const save = () => {
|
||||
|
||||
// 打开弹窗,可能是新增,也可能是编辑
|
||||
const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan: number) => {
|
||||
canEdited.value = true
|
||||
unboundPqDevList.value = []
|
||||
boundPqDevList.value = []
|
||||
//处理异步调用
|
||||
@@ -834,6 +840,9 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
user_Result: any
|
||||
|
||||
if (mode.value === '比对式') {
|
||||
if (data.children && data.children.length > 0) {
|
||||
canEdited.value = false
|
||||
}
|
||||
if (data.importFlag === 1 || (data.testState !== 0 && plan === 0)) {
|
||||
allDisabled.value = true
|
||||
formContent.leader = data.leader
|
||||
@@ -932,6 +941,14 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
if (planType.value === 0) {
|
||||
unboundPqDevList.value = unboundData as Device.ResPqDev[]
|
||||
boundPqDevList.value = boundData as Device.ResPqDev[]
|
||||
if (data.children && data.children.length > 0) {
|
||||
// 子计划已选成员不可移除
|
||||
const childrenMembers = [...new Set(data.children.map((item: any) => item.members))]
|
||||
memberData.value = user_Result.data.map((user: any) => ({
|
||||
...user,
|
||||
disabled: childrenMembers.includes(user.id) || formContent.leader === user.id
|
||||
}))
|
||||
}
|
||||
} else if (planType.value === 1) {
|
||||
unboundPqDevList.value = boundData.filter((i: any) => !i.boundPlanName) as Device.ResPqDev[]
|
||||
memberData.value = user_Result.data
|
||||
@@ -955,11 +972,14 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
|
||||
pqToArray() //将对象转为数组
|
||||
|
||||
//比对式测试项下拉框
|
||||
//比对式检测项下拉框
|
||||
if (mode.value == '比对式') {
|
||||
// 如果是编辑模式且已有误差体系ID,则加载对应的测试项
|
||||
// 如果是编辑模式且已有误差体系ID,则加载对应的检测项
|
||||
if (formContent.errorSysId) {
|
||||
await loadTestItemsForErrorSys(formContent.errorSysId)
|
||||
if (data.testItems) {
|
||||
formContent.testItems = data.testItems
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -994,11 +1014,19 @@ const open = async (sign: string, data: Plan.ReqPlan, currentMode: string, plan:
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
// 检测项选择变化时的处理函数
|
||||
const handleTestItemChange = () => {
|
||||
if (formContent.testItems.length > 0) {
|
||||
const hasShanBian = secondLevelOptions
|
||||
.filter(option => formContent.testItems.includes(option.value))
|
||||
.find(option => option.label === '闪变')
|
||||
if (hasShanBian) {
|
||||
ElMessage.warning('闪变耗时较长,不推荐批量被检设备在检测过程中采集该指标')
|
||||
}
|
||||
}
|
||||
}
|
||||
// 误差体系选择变化时的处理函数
|
||||
const handleErrorSysChange = async (value: string) => {
|
||||
// 清空测试项选择
|
||||
formContent.testItems = []
|
||||
|
||||
// 如果是比对式模式且选择了误差体系
|
||||
if (mode.value === '比对式' && value) {
|
||||
try {
|
||||
@@ -1015,18 +1043,21 @@ const handleErrorSysChange = async (value: string) => {
|
||||
})
|
||||
})
|
||||
}
|
||||
formContent.testItems = secondLevelOptions.map(option => option.value)
|
||||
} catch (error) {
|
||||
console.error('获取测试项失败:', error)
|
||||
formContent.testItems = []
|
||||
console.error('获取检测项失败:', error)
|
||||
// 发生错误时清空选项
|
||||
secondLevelOptions.length = 0
|
||||
}
|
||||
} else {
|
||||
// 如果没有选择误差体系,清空测试项选项
|
||||
formContent.testItems = []
|
||||
// 如果没有选择误差体系,清空检测项选项
|
||||
secondLevelOptions.length = 0
|
||||
}
|
||||
}
|
||||
|
||||
// 根据误差体系ID加载测试项(用于初始化)
|
||||
// 根据误差体系ID加载检测项(用于初始化)
|
||||
const loadTestItemsForErrorSys = async (errorSysId: string) => {
|
||||
if (!errorSysId) return
|
||||
|
||||
@@ -1043,9 +1074,10 @@ const loadTestItemsForErrorSys = async (errorSysId: string) => {
|
||||
label: (res.data as Record<string, string>)[key]
|
||||
})
|
||||
})
|
||||
formContent.testItems = secondLevelOptions.map(option => option.value)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取测试项失败:', error)
|
||||
console.error('获取检测项失败:', error)
|
||||
secondLevelOptions.length = 0
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
>
|
||||
导出
|
||||
</el-button>
|
||||
<!-- <el-button type='primary' v-auth.plan="'combine'" :icon='ScaleToOriginal' :disabled='!(scope.selectedList.length > 1)' @click='combineClick'>
|
||||
合并
|
||||
</el-button> -->
|
||||
<el-button type="primary" v-auth.plan="'add'" :icon="CirclePlus" @click="openDialog('add')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
v-auth.plan="'import_subplan'"
|
||||
@@ -39,9 +39,6 @@
|
||||
>
|
||||
导入检测计划
|
||||
</el-button>
|
||||
<el-button type="primary" v-auth.plan="'add'" :icon="CirclePlus" @click="openDialog('add')">
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
v-auth.plan="'analysis'"
|
||||
@@ -467,7 +464,7 @@ const columns = reactive<ColumnProps<Plan.ReqPlan>[]>([
|
||||
},
|
||||
{
|
||||
prop: 'testItemNameStr',
|
||||
label: '测试项',
|
||||
label: '检测项',
|
||||
minWidth: 300,
|
||||
isShow: modeStore.currentMode == '比对式'
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user