diff --git a/src/components/home/SelectCraft/index.vue b/src/components/home/SelectCraft/index.vue index c09f87c..a810666 100644 --- a/src/components/home/SelectCraft/index.vue +++ b/src/components/home/SelectCraft/index.vue @@ -3,7 +3,8 @@ import { startCraft } from 'apis/crafts' import { getOreList } from 'apis/ore' import { FtMessage } from 'libs/message' import { useHomeStore } from 'stores/homeStore' -import { onMounted, ref } from 'vue' +import { useSystemStore } from 'stores/systemStore' +import { computed, onMounted, ref } from 'vue' const emits = defineEmits(['ok', 'cancel']) @@ -13,13 +14,16 @@ onMounted(() => { getOres() }) -const form = ref<{ craftId?: number }>({}) +const form = ref<{ craftId?: number, tubes?: number[] }>({}) const formRef = ref() const rules = { craftId: [ { required: true, message: '请选择工艺', trigger: 'change' }, ], + tubes: [ + { required: true, message: '请选择试管', trigger: 'change' }, + ], } const okHandle = async () => { @@ -30,7 +34,7 @@ const okHandle = async () => { } await startCraft({ heatId: useHomeStore().heatAreaList.find(item => item.selected)?.value, - craftId: form.value.craftId, + ...form.value, }) FtMessage.success('工艺已开始') emits('ok') @@ -49,6 +53,35 @@ const getOres = async () => { const res = await getOreList() oreList.value = res.list } + +const mousedownHandle = async (e: Event) => { + let event + if ('touches' in e) { + event = (e.touches as TouchList)[0] + } + else { + event = e + } + if (event.target!.classList!.contains('tube-inner') && !event.target!.classList.contains('tube-inner-disable')) { + const num = event.target!.getAttribute('index') + activeTube.value[Number(num) - 1] = !activeTube.value[Number(num) - 1] + form.value.tubes = activeTube.value.map((item, index) => index + 1).filter(item => activeTube.value[item - 1]) + console.log(form.value.tubes) + } +} + +const activeTube = ref(Array.from({ length: 16 }).fill(false)) + +const tubes = computed(() => { + return useSystemStore().systemStatus.tray?.find(item => item.heatModuleId === homeStore.heatAreaList.find(item => item.selected)?.value)?.tubes +}) + +const selectVisible = ref(false) +const checkChange = () => { + activeTube.value = Array.from({ length: 16 }).fill(selectVisible.value) + form.value.tubes = activeTube.value.map((item, index) => index + 1).filter(item => activeTube.value[item - 1]) + formRef.value.validateField('tubes') +}