3 changed files with 116 additions and 138 deletions
-
131src/components/home/SetTemperature/index.vue
-
78src/components/home/StartHeat/index.vue
-
45src/views/home/index.vue
@ -1,131 +0,0 @@ |
|||||
<script setup lang="ts"> |
|
||||
import { setTargetTemperature } from 'apis/home' |
|
||||
import { configList } from 'apis/system' |
|
||||
import { FtMessage } from 'libs/message' |
|
||||
import { useSystemStore } from 'stores/systemStore' |
|
||||
import { computed, inject, onMounted, ref } from 'vue' |
|
||||
|
|
||||
const emits = defineEmits(['ok', 'cancel']) |
|
||||
|
|
||||
const data = inject('currentTemperatureData') |
|
||||
const configData = ref<any[]>([]) |
|
||||
onMounted(async () => { |
|
||||
configData.value = await configList() |
|
||||
}) |
|
||||
|
|
||||
const heatMax = computed(() => { |
|
||||
return configData.value.find(item => item.code === 'heat_temperature')?.value || 0 |
|
||||
}) |
|
||||
const dryMax = computed(() => { |
|
||||
return configData.value.find(item => item.code === 'dry_temperature')?.value || 0 |
|
||||
}) |
|
||||
const annealMax = computed(() => { |
|
||||
return configData.value.find(item => item.code === 'anneal_temperature')?.value || 0 |
|
||||
}) |
|
||||
|
|
||||
const heatModule = computed(() => { |
|
||||
return useSystemStore().systemStatus.heatModule.find(item => item.moduleCode === data.value.id) |
|
||||
}) |
|
||||
|
|
||||
const form = ref({ |
|
||||
dryTemperature: heatModule.value?.dryTemperature, |
|
||||
annealTemperature: heatModule.value?.annealTemperature, |
|
||||
heatTemperature: heatModule.value?.heatTemperature, |
|
||||
}) |
|
||||
const formRef = ref() |
|
||||
|
|
||||
const validateHandle1 = (rule: any, value: any, callback: any) => { |
|
||||
if (value && (value < 0 || +value > +heatMax.value)) { |
|
||||
callback(new Error(`加热温度设置范围0℃-${heatMax.value}℃`)) |
|
||||
} |
|
||||
else { |
|
||||
callback() |
|
||||
} |
|
||||
} |
|
||||
const validateHandle2 = (rule: any, value: any, callback: any) => { |
|
||||
if (value && (value < 0 || +value > +dryMax.value)) { |
|
||||
callback(new Error(`烘干温度设置范围0℃-${dryMax.value}℃`)) |
|
||||
} |
|
||||
else { |
|
||||
callback() |
|
||||
} |
|
||||
} |
|
||||
const validateHandle3 = (rule: any, value: any, callback: any) => { |
|
||||
if (value && (value < 0 || +value > +annealMax.value)) { |
|
||||
callback(new Error(`退火温度设置范围0℃-${annealMax.value}℃`)) |
|
||||
} |
|
||||
else { |
|
||||
callback() |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
const rules = { |
|
||||
heatTemperature: [ |
|
||||
{ required: false, trigger: 'blur', validator: validateHandle1 }, |
|
||||
], |
|
||||
dryTemperature: [ |
|
||||
{ required: false, trigger: 'blur', validator: validateHandle2 }, |
|
||||
], |
|
||||
annealTemperature: [ |
|
||||
{ required: false, trigger: 'blur', validator: validateHandle3 }, |
|
||||
], |
|
||||
} |
|
||||
|
|
||||
const okHandle = async () => { |
|
||||
try { |
|
||||
const valid = await formRef.value.validate() |
|
||||
if (!valid) { |
|
||||
return |
|
||||
} |
|
||||
await setTargetTemperature({ |
|
||||
...form.value, |
|
||||
moduleCode: data.value.id, |
|
||||
}) |
|
||||
FtMessage.success('设置成功') |
|
||||
emits('ok') |
|
||||
} |
|
||||
catch (error) { |
|
||||
console.log(error) |
|
||||
} |
|
||||
} |
|
||||
const cancel = () => { |
|
||||
emits('cancel') |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<template> |
|
||||
<FtDialog visible title="设置目标温度" width="40%" :ok-handle="okHandle" @cancel="cancel"> |
|
||||
<el-form ref="formRef" label-width="auto" :model="form" :rules="rules"> |
|
||||
<el-form-item label="加热区"> |
|
||||
<el-tag>{{ data?.label }}</el-tag> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="加热温度" prop="heatTemperature"> |
|
||||
<el-input v-model="form.heatTemperature" type="number" placeholder="请输入加热温度"> |
|
||||
<template #append> |
|
||||
℃ |
|
||||
</template> |
|
||||
</el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="烘干温度" prop="dryTemperature"> |
|
||||
<el-input v-model="form.dryTemperature" type="number" placeholder="请输入烘干温度"> |
|
||||
<template #append> |
|
||||
℃ |
|
||||
</template> |
|
||||
</el-input> |
|
||||
</el-form-item> |
|
||||
<el-form-item label="退火温度" prop="annealTemperature"> |
|
||||
<el-input v-model="form.annealTemperature" type="number" placeholder="请输入退火温度"> |
|
||||
<template #append> |
|
||||
℃ |
|
||||
</template> |
|
||||
</el-input> |
|
||||
</el-form-item> |
|
||||
</el-form> |
|
||||
</FtDialog> |
|
||||
</template> |
|
||||
|
|
||||
<style scoped lang="scss"> |
|
||||
.el-tag { |
|
||||
margin-right: 5px; |
|
||||
} |
|
||||
</style> |
|
@ -0,0 +1,78 @@ |
|||||
|
<script setup lang="ts"> |
||||
|
import { setTargetTemperature } from 'apis/home' |
||||
|
import { configList } from 'apis/system' |
||||
|
import { FtMessage } from 'libs/message' |
||||
|
import { useHomeStore } from 'stores/homeStore' |
||||
|
import { useSystemStore } from 'stores/systemStore' |
||||
|
import { computed, inject, onMounted, ref } from 'vue' |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
heatModuleCode: { |
||||
|
type: String, |
||||
|
default: 'MODULE_1', |
||||
|
}, |
||||
|
}) |
||||
|
const emits = defineEmits(['ok', 'cancel']) |
||||
|
|
||||
|
const homeStore = useHomeStore() |
||||
|
|
||||
|
const form = ref({ |
||||
|
temperature: undefined, |
||||
|
heatModuleCode: props.heatModuleCode, |
||||
|
}) |
||||
|
const formRef = ref() |
||||
|
|
||||
|
const rules = { |
||||
|
temperature: [ |
||||
|
{ required: true, trigger: 'blur', message: '请输入温度' }, |
||||
|
], |
||||
|
} |
||||
|
|
||||
|
let currentCommandId = '' |
||||
|
|
||||
|
const okHandle = async () => { |
||||
|
try { |
||||
|
const valid = await formRef.value.validate() |
||||
|
if (!valid) { |
||||
|
return |
||||
|
} |
||||
|
currentCommandId = Date.now().toString() |
||||
|
const params = { |
||||
|
commandId: currentCommandId, |
||||
|
command: 'heater_start', |
||||
|
params: form.value, |
||||
|
} |
||||
|
await homeStore.sendControl(params) |
||||
|
emits('ok') |
||||
|
} |
||||
|
catch (error) { |
||||
|
console.log(error) |
||||
|
} |
||||
|
} |
||||
|
const cancel = () => { |
||||
|
emits('cancel') |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<template> |
||||
|
<FtDialog visible title="开始加热" width="40%" :ok-handle="okHandle" @cancel="cancel"> |
||||
|
<el-form ref="formRef" label-width="auto" :model="form" :rules="rules"> |
||||
|
<el-form-item label="加热区"> |
||||
|
<el-tag>{{ form.heatModuleCode === 'MODULE_1' ? '加热区1' : '加热区2' }}</el-tag> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="加热温度" prop="temperature"> |
||||
|
<el-input v-model="form.temperature" type="number" placeholder="请输入加热温度"> |
||||
|
<template #append> |
||||
|
℃ |
||||
|
</template> |
||||
|
</el-input> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</FtDialog> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.el-tag { |
||||
|
margin-right: 5px; |
||||
|
} |
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue