基质喷涂
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.
 
 
 
 
 

115 lines
4.4 KiB

<template>
<div class="wrapper grid grid-cols-[auto_150px_auto] gap-x-3 gap-y-4 text-base">
<slot></slot>
<span class="self-center text-right text-primary font-medium">喷涂路线</span>
<div class="flex items-center gap-x-4 col-span-2">
<img :src="selectCraft.routeType === 1 ? route_v : route_v2" alt="icon" @click="sprayDirection('v')" />
<img :src="selectCraft.routeType === 1 ? route_h2 : route_h" alt="icon" @click="sprayDirection('h')" />
</div>
<span class="self-center text-right text-primary font-medium">Z轴高度</span>
<input
type="number"
v-model.number="selectCraft.height"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center" />
<span class="self-center text-primary font-medium">毫米</span>
<span class="self-center text-right text-primary font-medium">氮气流速</span>
<input
type="number"
v-model.number="selectCraft.nitrogenFlowVelocity"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center" />
<span class="self-center text-primary font-medium">毫米/每秒</span>
<span class="self-center text-right text-primary font-medium">氮气气压</span>
<input
type="number"
v-model.number="selectCraft.nitrogenAirPressure"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center" />
<span class="self-center text-primary font-medium">MPa0.35</span>
<span class="self-center text-right text-primary font-medium">基质流速</span>
<input
type="number"
v-model.number="selectCraft.matrixFlowVelocity"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center" />
<span class="self-center text-primary font-medium">ul/min</span>
<span class="self-center text-right text-primary font-medium">是否加电</span>
<div class="flex items-center justify-between">
<div :class="selectCraft.needPower ? 'true' : 'false'" @click="needPower(true)"></div>
<div :class="selectCraft.needPower ? 'false' : 'true'" @click="needPower(false)"></div>
<input
type="number"
v-model.number="selectCraft.voltage"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center w-[54px]" />
</div>
<span class="self-center text-primary font-medium">V</span>
<span class="self-center text-right text-primary font-medium">移动速度</span>
<input
type="number"
v-model.number="selectCraft.movementSpeed"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center" />
<span class="self-center text-primary font-medium">毫米/每秒</span>
<span class="self-center text-right text-primary font-medium">行间距</span>
<input
type="number"
v-model.number="selectCraft.space"
class="border-none outline-none h-[34px] bg-[#E8ECF7] text-primary font-medium rounded-md text-lg text-center" />
<span class="self-center text-primary font-medium">毫米</span>
<div class="col-span-3 flex justify-center items-center">
<button class="btn-dark px-10 py-2 text-base" @click="onSaveClick">{{ saveTitle || "保存" }}</button>
</div>
</div>
</template>
<script setup lang="ts">
import { checkSprayParamValid, type WorkType } from "@/services/globalCmd/cmdTypes";
import { ref, watch } from "vue";
import route_v from "@/assets/route_vertical.png";
import route_v2 from "@/assets/route_vertical2.png";
import route_h from "@/assets/route_horizontal.png";
import route_h2 from "@/assets/route_horizontal2.png";
import { ElMessage } from "element-plus";
const props = defineProps<{
sprayParam: Partial<WorkType>;
saveTitle?: string;
}>();
const emit = defineEmits<{
(e: "save", param: WorkType): void;
}>();
const selectCraft = ref(props.sprayParam);
defineExpose({
sprayParam: selectCraft,
});
function needPower(need: boolean) {
selectCraft.value.needPower = need;
}
function sprayDirection(direction: "h" | "v") {
selectCraft.value.routeType = direction === "h" ? 1 : 2;
}
function onSaveClick() {
const check = checkSprayParamValid(selectCraft.value);
if (!check[0]) {
ElMessage.error(check[1]);
return;
}
if (!selectCraft.value.needPower) {
selectCraft.value.voltage = 0;
}
emit("save", selectCraft.value as WorkType);
}
watch(
() => props.sprayParam,
p => {
selectCraft.value = p;
}
);
</script>