温度湿度弹窗中新增守时勾选框
This commit is contained in:
@@ -36,6 +36,7 @@ export const useCheckStore = defineStore(CHECK_STORE_KEY, {
|
||||
initSelectTestItems() {
|
||||
const appSceneStore = useAppSceneStore()
|
||||
this.selectTestItems.preTest = true
|
||||
this.selectTestItems.timeTest = false
|
||||
if (appSceneStore.currentScene === '1') {
|
||||
this.selectTestItems.channelsTest = true
|
||||
} else {
|
||||
@@ -68,4 +69,4 @@ export const useCheckStore = defineStore(CHECK_STORE_KEY, {
|
||||
this.nodesConnectable = nodesConnectable
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -355,7 +355,7 @@ const handleSubmitAgain = async () => {
|
||||
devIds: devIds.value,
|
||||
standardDevIds: standardDevIds.value,
|
||||
pairs: pairs.value,
|
||||
testItemList: [checkStore.selectTestItems.preTest, false, checkStore.selectTestItems.test],
|
||||
testItemList: [checkStore.selectTestItems.preTest, false, false, checkStore.selectTestItems.test],
|
||||
userId: userStore.userInfo.id,
|
||||
phaseCheck: xiangXuIsShow.value ? 1 : 0,
|
||||
})
|
||||
@@ -423,7 +423,7 @@ const handleSubmitFast = async () => {
|
||||
devIds: devIds.value,
|
||||
standardDevIds: standardDevIds.value,
|
||||
pairs: pairs.value,
|
||||
testItemList: [checkStore.selectTestItems.preTest, false, checkStore.selectTestItems.test],
|
||||
testItemList: [checkStore.selectTestItems.preTest, false, false, checkStore.selectTestItems.test],
|
||||
|
||||
userId: userStore.userInfo.id,
|
||||
phaseCheck: xiangXuIsShow.value ? 1 : 0,
|
||||
@@ -448,7 +448,7 @@ const handleSubmitFast = async () => {
|
||||
devIds: devIds.value,
|
||||
standardDevIds: standardDevIds.value,
|
||||
pairs: pairs.value,
|
||||
testItemList: [checkStore.selectTestItems.preTest, false, checkStore.selectTestItems.test],
|
||||
testItemList: [checkStore.selectTestItems.preTest, false, false, checkStore.selectTestItems.test],
|
||||
|
||||
userId: userStore.userInfo.id,
|
||||
phaseCheck: xiangXuIsShow.value ? 1 : 0,
|
||||
@@ -571,7 +571,8 @@ const sendReCheck = () => {
|
||||
humidity: checkStore.humidity,
|
||||
testItemList: [
|
||||
checkStore.selectTestItems.preTest,
|
||||
checkStore.selectTestItems.channelsTest,
|
||||
false,
|
||||
false,
|
||||
checkStore.selectTestItems.test
|
||||
]
|
||||
}).then(res => {
|
||||
|
||||
@@ -1,18 +1,30 @@
|
||||
<template>
|
||||
<el-dialog title="选择测试内容" v-model='dialogVisible' @close="handleClose" v-bind="dialogSmall" >
|
||||
<div>
|
||||
<el-form ref="dialogFormRef" :model="formContent" class="form-three">
|
||||
<el-form-item prop="preTest" :label-width="100">
|
||||
<el-checkbox v-model="formContent.preTest" label="预检测"/>
|
||||
<el-form ref="dialogFormRef" :model="formContent" class="form-three select-test-form">
|
||||
<el-form-item prop="preTest">
|
||||
<div class="test-item-checkbox">
|
||||
<span>预检测</span>
|
||||
<el-checkbox v-model="formContent.preTest"/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="checkStore.plan.timeCheck===1" prop="timeTest" :label-width="100">
|
||||
<el-checkbox v-model="formContent.timeTest" label="守时检测"/>
|
||||
<el-form-item v-if="checkStore.plan.timeCheck===1" prop="timeTest">
|
||||
<div class="test-item-checkbox">
|
||||
<span>守时检测</span>
|
||||
<el-checkbox v-model="formContent.timeTest"/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="channelsTestShow" prop="channelsTest" :label-width="100">
|
||||
<el-checkbox v-model="formContent.channelsTest" label="系数校准"/>
|
||||
<el-form-item v-if="channelsTestShow" prop="channelsTest">
|
||||
<div class="test-item-checkbox">
|
||||
<span>系数校准</span>
|
||||
<el-checkbox v-model="formContent.channelsTest"/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item prop="test" :label-width="100">
|
||||
<el-checkbox v-model="formContent.test" label="正式检测"/>
|
||||
<el-form-item prop="test">
|
||||
<div class="test-item-checkbox">
|
||||
<span>正式检测</span>
|
||||
<el-checkbox v-model="formContent.test"/>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
@@ -123,5 +135,30 @@ defineExpose({open})
|
||||
|
||||
|
||||
<style scoped lang="scss">
|
||||
.test-item-checkbox {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
min-width: 92px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
</style>
|
||||
.select-test-form {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 120px);
|
||||
justify-content: center;
|
||||
column-gap: 70px;
|
||||
row-gap: 22px;
|
||||
padding: 12px 0 18px;
|
||||
|
||||
:deep(.el-form-item) {
|
||||
width: auto !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
:deep(.el-form-item__content) {
|
||||
flex: none;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -28,18 +28,18 @@
|
||||
:icon="stepsActive > 1 || stepsActiveIndex > stepsTotalNum - 1 ? SuccessFilled : Edit"
|
||||
@click="handleStepClick(1)"
|
||||
/>
|
||||
<!-- 守时检测步骤 -->
|
||||
<el-step
|
||||
v-if="timeTestSelected"
|
||||
title="守时检测"
|
||||
:icon="stepsActive > 2 || stepsActiveIndex > stepsTotalNum - 1 ? SuccessFilled : UploadFilled"
|
||||
@click="handleStepClick(2)"
|
||||
/>
|
||||
<!-- 系数校准步骤 -->
|
||||
<el-step
|
||||
v-if="channelsTestSelected"
|
||||
title="系数校准"
|
||||
:icon="stepsActive > 3 || stepsActiveIndex > stepsTotalNum - 1 ? SuccessFilled : Odometer"
|
||||
:icon="stepsActive > 2 || stepsActiveIndex > stepsTotalNum - 1 ? SuccessFilled : Odometer"
|
||||
@click="handleStepClick(2)"
|
||||
/>
|
||||
<!-- 守时检测步骤 -->
|
||||
<el-step
|
||||
v-if="timeTestSelected"
|
||||
title="守时检测"
|
||||
:icon="stepsActive > 3 || stepsActiveIndex > stepsTotalNum - 1 ? SuccessFilled : UploadFilled"
|
||||
@click="handleStepClick(3)"
|
||||
/>
|
||||
<!-- 正式检测步骤 -->
|
||||
@@ -66,13 +66,13 @@
|
||||
<!-- 守时检测组件 -->
|
||||
<timeTest
|
||||
v-if="showComponent && timeTestSelected"
|
||||
v-show="timeTestSelected && stepsActiveView == 2"
|
||||
v-show="timeTestSelected && stepsActiveView == 3"
|
||||
v-model:testStatus="timeTestStatus"
|
||||
/>
|
||||
<!-- 系数校准检测组件 -->
|
||||
<factorTest
|
||||
v-if="showComponent && channelsTestSelected"
|
||||
v-show="channelsTestSelected && stepsActiveView == 3"
|
||||
v-show="channelsTestSelected && stepsActiveView == 2"
|
||||
v-model:testStatus="channelsTestStatus"
|
||||
:webMsgSend="webMsgSend"
|
||||
/>
|
||||
@@ -255,20 +255,20 @@ const initOperate = () => {
|
||||
}
|
||||
stepsTotalNum.value = count + 1
|
||||
|
||||
// 根据选中的检测项,设置初始显示的步骤(按优先级:预检测 > 守时检测 > 系数校准 > 正式检测)
|
||||
// 根据选中的检测项,设置初始显示的步骤(按优先级:预检测 > 系数校准 > 守时检测 > 正式检测)
|
||||
if (preTestSelected.value) {
|
||||
stepsActiveView.value = 1 // 显示预检测组件
|
||||
stepsActive.value = 1 // 业务逻辑设为预检测
|
||||
return
|
||||
}
|
||||
if (timeTestSelected.value) {
|
||||
stepsActiveView.value = 2 // 显示守时检测组件
|
||||
stepsActive.value = 2 // 业务逻辑设为守时检测
|
||||
if (channelsTestSelected.value) {
|
||||
stepsActiveView.value = 2 // 显示系数校准组件
|
||||
stepsActive.value = 2 // 业务逻辑设为系数校准
|
||||
return
|
||||
}
|
||||
if (channelsTestSelected.value) {
|
||||
stepsActiveView.value = 3 // 显示系数校准组件
|
||||
stepsActive.value = 3 // 业务逻辑设为系数校准
|
||||
if (timeTestSelected.value) {
|
||||
stepsActiveView.value = 3 // 显示守时检测组件
|
||||
stepsActive.value = 3 // 业务逻辑设为守时检测
|
||||
return
|
||||
}
|
||||
if (testSelected.value) {
|
||||
@@ -354,6 +354,7 @@ const handleSubmitFast = () => {
|
||||
testItemList: [
|
||||
checkStore.selectTestItems.preTest,
|
||||
checkStore.selectTestItems.channelsTest,
|
||||
checkStore.selectTestItems.timeTest,
|
||||
checkStore.selectTestItems.test
|
||||
]
|
||||
}).then(res => {
|
||||
@@ -369,10 +370,7 @@ const handleSubmitFast = () => {
|
||||
}
|
||||
}
|
||||
break
|
||||
case 2: // 守时检测步骤
|
||||
timeTestStatus.value = 'start'
|
||||
break
|
||||
case 3: // 系数校准步骤
|
||||
case 2: // 系数校准步骤
|
||||
if (channelsTestStatus.value == 'waiting') {
|
||||
// 如果没有预检测且有系数校准,需要先进行初始化
|
||||
if (!checkStore.selectTestItems.preTest && checkStore.selectTestItems.channelsTest) {
|
||||
@@ -387,6 +385,7 @@ const handleSubmitFast = () => {
|
||||
testItemList: [
|
||||
checkStore.selectTestItems.preTest,
|
||||
checkStore.selectTestItems.channelsTest,
|
||||
checkStore.selectTestItems.timeTest,
|
||||
checkStore.selectTestItems.test
|
||||
]
|
||||
}).then(res => {
|
||||
@@ -402,12 +401,47 @@ const handleSubmitFast = () => {
|
||||
channelsTestStatus.value = 'start'
|
||||
}
|
||||
break
|
||||
case 4: // 正式检测步骤
|
||||
if (TestStatus.value == 'waiting') {
|
||||
// 如果没有预检测和系数校准,直接进行正式检测需要先初始化
|
||||
case 3: // 守时检测步骤
|
||||
if (timeTestStatus.value == 'waiting') {
|
||||
if (
|
||||
!checkStore.selectTestItems.preTest &&
|
||||
!checkStore.selectTestItems.channelsTest &&
|
||||
checkStore.selectTestItems.timeTest
|
||||
) {
|
||||
startPreTest({
|
||||
userPageId: JwtUtil.getLoginName(),
|
||||
devIds: deviceIds,
|
||||
planId: planId,
|
||||
reCheckType: checkStore.reCheckType == 1 ? '1' : '2',
|
||||
userId: userStore.userInfo.id,
|
||||
temperature: checkStore.temperature,
|
||||
humidity: checkStore.humidity,
|
||||
testItemList: [
|
||||
checkStore.selectTestItems.preTest,
|
||||
checkStore.selectTestItems.channelsTest,
|
||||
checkStore.selectTestItems.timeTest,
|
||||
checkStore.selectTestItems.test
|
||||
]
|
||||
}).then(res => {
|
||||
if (res.code !== 'A0000') {
|
||||
ElMessageBox.alert('守时检测失败', '检测失败', {
|
||||
confirmButtonText: '确定',
|
||||
type: 'error'
|
||||
})
|
||||
timeTestStatus.value = 'error'
|
||||
}
|
||||
})
|
||||
}
|
||||
timeTestStatus.value = 'start'
|
||||
}
|
||||
break
|
||||
case 4: // 正式检测步骤
|
||||
if (TestStatus.value == 'waiting') {
|
||||
// 如果没有预检测、系数校准和守时检测,直接进行正式检测需要先初始化
|
||||
if (
|
||||
!checkStore.selectTestItems.preTest &&
|
||||
!checkStore.selectTestItems.channelsTest &&
|
||||
!checkStore.selectTestItems.timeTest &&
|
||||
checkStore.selectTestItems.test
|
||||
) {
|
||||
startPreTest({
|
||||
@@ -421,6 +455,7 @@ const handleSubmitFast = () => {
|
||||
testItemList: [
|
||||
checkStore.selectTestItems.preTest,
|
||||
checkStore.selectTestItems.channelsTest,
|
||||
checkStore.selectTestItems.timeTest,
|
||||
checkStore.selectTestItems.test
|
||||
]
|
||||
}).then(res => {
|
||||
@@ -629,27 +664,25 @@ const nextStep = () => {
|
||||
if (ActiveStatue.value != 'error') {
|
||||
ActiveStatue.value = 'waiting' // 重置为等待状态
|
||||
let tempStep = stepsActiveIndex.value
|
||||
let idx = 1
|
||||
const stepOrder = [
|
||||
{ key: 'preTest', step: 1 },
|
||||
{ key: 'channelsTest', step: 2 },
|
||||
{ key: 'timeTest', step: 3 },
|
||||
{ key: 'test', step: 4 }
|
||||
] as const
|
||||
stepsActiveIndex.value++ // 步骤索引递增
|
||||
|
||||
// 遍历检测项,找到下一个需要执行的步骤
|
||||
for (let selectTestItemsKey in checkStore.selectTestItems) {
|
||||
if (
|
||||
tempStep == 0 &&
|
||||
checkStore.selectTestItems[selectTestItemsKey as keyof typeof checkStore.selectTestItems]
|
||||
) {
|
||||
for (let item of stepOrder) {
|
||||
if (tempStep == 0 && checkStore.selectTestItems[item.key]) {
|
||||
// 找到下一个要执行的检测项
|
||||
stepsActiveView.value = idx // 设置显示的组件
|
||||
stepsActive.value = idx // 设置业务逻辑步骤
|
||||
stepsActiveView.value = item.step // 设置显示的组件
|
||||
stepsActive.value = item.step // 设置业务逻辑步骤
|
||||
return
|
||||
}
|
||||
if (
|
||||
checkStore.selectTestItems[selectTestItemsKey as keyof typeof checkStore.selectTestItems] &&
|
||||
tempStep != 0
|
||||
) {
|
||||
if (checkStore.selectTestItems[item.key] && tempStep != 0) {
|
||||
tempStep-- // 跳过已选择的检测项
|
||||
}
|
||||
idx++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
<el-form-item label='相对湿度(%)' prop='humidity' :label-width='110'>
|
||||
<el-input v-model='formContent.humidity' placeholder='请输入湿度' maxlength='32' show-word-limit />
|
||||
</el-form-item>
|
||||
<el-form-item v-if='checkStore.plan.timeCheck === 1' label='守时检测' prop='timeTest' :label-width='110'>
|
||||
<el-checkbox v-model='timeTestChecked' @change='handleTimeTestChange' />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
@@ -33,15 +36,30 @@ const dialogFormRef = ref()
|
||||
|
||||
const dialogVisible = ref(false)
|
||||
const formContent = reactive<Device.ResTH>({ temperature: 0, humidity: 0 })
|
||||
const timeTestChecked = ref(false)
|
||||
const checkStore = useCheckStore()
|
||||
const open = async () => {
|
||||
resetFormContent()
|
||||
syncTimeTestSelection(false)
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
// 清空表单内容
|
||||
const resetFormContent = () => {
|
||||
Object.assign(formContent, { temperature: '22', humidity: '50' })
|
||||
timeTestChecked.value = false
|
||||
}
|
||||
|
||||
const syncTimeTestSelection = (selected: boolean) => {
|
||||
timeTestChecked.value = selected
|
||||
checkStore.setSelectTestItems({
|
||||
...checkStore.selectTestItems,
|
||||
timeTest: selected,
|
||||
})
|
||||
}
|
||||
|
||||
const handleTimeTestChange = (value: string | number | boolean) => {
|
||||
syncTimeTestSelection(Boolean(value))
|
||||
}
|
||||
|
||||
|
||||
@@ -95,5 +113,4 @@ defineExpose({ open })
|
||||
|
||||
|
||||
<style scoped lang='scss'>
|
||||
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user