From 68511ee50002ae0119051703a2e8b975db9649ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=A2=A6=E8=BF=9C?= <1063331231@qq.com> Date: Fri, 4 Jul 2025 10:23:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=9C=A8=E6=89=A7=E8=A1=8C=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E6=96=B9=E7=A6=81=E6=AD=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/formula/FormulaConfig.vue | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/components/formula/FormulaConfig.vue b/src/components/formula/FormulaConfig.vue index 561a94e..2b4322a 100644 --- a/src/components/formula/FormulaConfig.vue +++ b/src/components/formula/FormulaConfig.vue @@ -2,9 +2,11 @@ import { sendCmd, syncSendCmd } from 'apis/system' import SelectModal from 'components/common/SelectModal/index.vue' import SoftKeyboard from 'components/common/SoftKeyboard/index.vue' +import { ElMessage } from 'element-plus' import { formulaNameMap } from 'libs/constant' import { cloneDeep } from 'lodash' -import { inject, nextTick, onMounted, ref, watch, watchEffect } from 'vue' +import { useHomeStore } from 'stores/homeStore' +import { computed, inject, nextTick, onMounted, ref, watch, watchEffect } from 'vue' import { FtMessage } from '@/libs/message' import { compareJSON, convertValuesToInt, convertValuesToString } from '@/libs/utils' @@ -21,6 +23,7 @@ const props = defineProps<{ type: string formulaNameVisible: boolean }>() +const homeStore = useHomeStore() const nameLeng = 10 @@ -104,7 +107,6 @@ const currentFormulaItem = ref() onMounted(() => { registerGrandsonMethods && registerGrandsonMethods({ getFormData }) }) - /** * 模态框是否打开 */ @@ -116,6 +118,7 @@ const isModalOpen = ref(false) const openModal = () => { isModalOpen.value = true } +const disinfectionState = ref(homeStore.disinfectionState) // 消毒状态 /** * 监听配方配置列表和表单数据变化 * 根据不同的type属性值初始化表单数据 @@ -211,17 +214,29 @@ const handleSubmit = () => { onSaveSetting() } } - +/** + * @computed 计算属性 - 设备状态判断 + * @returns {boolean} - 设备是否处于空闲或已完成状态 + * @desc 控制按钮可用状态 + */ +const deviceState = computed(() => { + return disinfectionState.value.state === 'idle' || disinfectionState.value.state === 'finished' +}) /** * 保存配方 * 根据是否有formula_id决定是添加新配方还是编辑已有配方 */ const onSaveFormula = () => { - if (formData.value.formula_id) { + if (formData.value.formula_id) { // 修改配方 + // 判断消毒是否正在执行 且正在执行配方是当前修改配方 + if (!deviceState.value && formulaStore.selectedFormulaInfo?.formula_id === formData.value.formula_id) { + ElMessage.warning('禁止修改正在执行的配方信息!') + return + } const formulaForm: Record = convertValuesToString(formData.value, 'name') onEditFormula(formulaForm.formula_id, formulaForm as Formula.FormulaItem) } - else { + else { // 新增配方 onAddFormula() } } @@ -354,7 +369,6 @@ const handleResetDefault = async () => { const handleConfirm = (value: string) => { console.log('确认输入:', value) } - /** * 确认日志级别选择 * @param {any} value - 选择的值