You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

117 lines
2.9 KiB

<script setup lang="ts">
import { getContainerList } from 'apis/container'
import { getSolsList } from 'apis/solution'
import { FtMessage } from 'libs/message'
import { useHomeStore } from 'stores/homeStore'
import { useSolutionStore } from 'stores/useSolutionStore'
import { onMounted, ref } from 'vue'
const emits = defineEmits(['ok', 'cancel'])
const homeStore = useHomeStore()
let currentCommandId = ''
onMounted(() => {
queryContainerList()
querySolutionList()
})
const containerList = ref<Container.ContainerItem[]>([])
const queryContainerList = async () => {
const res = await getContainerList()
containerList.value = res.filter(item => item.type === 0)
}
const cancel = async () => {
currentCommandId = Date.now().toString()
const params = {
commandId: currentCommandId,
command: 'liquid_motor_origin',
params: {},
}
await homeStore.sendControl(params)
emits('cancel')
}
const solutionList = ref<Solution.SolutionItem[]>([])
const solutionMap = ref<Record<string | number, string>>({})
const solutionStore = useSolutionStore()
const querySolutionList = async () => {
const res = await getSolsList()
if (res && res.list) {
solutionList.value = res.list
solutionList.value.forEach((item) => {
if (item.id) {
solutionMap.value[item.id] = item.name
}
})
solutionStore.updateSolution(res.list)
}
}
const filled_solution_start = async () => {
if (!checked.value) {
FtMessage.warning('请选择要预充的溶液')
return
}
currentCommandId = Date.now().toString()
const params = {
commandId: currentCommandId,
command: 'liquid_pre_fill_start',
params: {
solutionId: checked.value,
},
}
await homeStore.sendControl(params)
}
const filled_solution_stop = async () => {
currentCommandId = Date.now().toString()
const params = {
commandId: currentCommandId,
command: 'liquid_pre_fill_stop',
params: {},
}
await homeStore.sendControl(params)
}
const checked = ref<number>()
</script>
<template>
<FtDialog visible title="预充管路" width="50%">
<el-radio-group v-model="checked">
<el-radio v-for="item in containerList" :key="item.id" border :label="solutionMap[item.solutionId]" :value="item.id" />
</el-radio-group>
<template #footer>
<ft-button type="primary" :click-handle="filled_solution_start">
开始预充
</ft-button>
<ft-button type="primary" :click-handle="filled_solution_stop">
停止预充
</ft-button>
<ft-button :click-handle="cancel">
完成预充
</ft-button>
</template>
</FtDialog>
</template>
<style scoped lang="scss">
.item-box {
display: flex;
align-items: center;
justify-content: space-between;
padding: 5px;
}
.el-checkbox {
margin: 10px 5px;
min-width: 100px;
}
.button-box {
margin-top: 10px;
display: flex;
justify-content: center;
}
</style>