LiLongLong 5 months ago
parent
commit
2c6a4d7816
  1. 15
      src/App.vue
  2. 2
      src/components/FooterBar.vue
  3. 20
      src/components/Spray.vue
  4. 1
      src/views/HomeView.vue
  5. 3
      src/views/PreSpray.vue
  6. 5
      src/views/SprayView.vue

15
src/App.vue

@ -6,6 +6,8 @@ import { onMounted, ref } from "vue";
import { getList } from "./services/matrix/manage"; import { getList } from "./services/matrix/manage";
import { useSettingStore } from "./stores/setting"; import { useSettingStore } from "./stores/setting";
import Dialog, { type DialogParam } from "./components/Dialog.vue"; import Dialog, { type DialogParam } from "./components/Dialog.vue";
import { pushOutTray } from "./services/globalCmd/globalCmd";
import { ElMessage } from "element-plus";
const equipmentStatusStore = useEquipmentStatusStore(); const equipmentStatusStore = useEquipmentStatusStore();
const settingStore = useSettingStore(); const settingStore = useSettingStore();
@ -40,9 +42,10 @@ wsClient.dataOb.subscribe(data => {
showDialog.value = true; showDialog.value = true;
} else if (data.data.code === "spray_complete") { } else if (data.data.code === "spray_complete") {
dialogContent.value = { dialogContent.value = {
desc: "喷涂结束,建议回首页清洗管道",
desc: "喷涂完成",
type: "confirm", type: "confirm",
okText: "去清洗",
okText: "推出玻片",
cancelText: "确认完成",
_brand: "spray_complete", _brand: "spray_complete",
}; };
showDialog.value = true; showDialog.value = true;
@ -76,7 +79,13 @@ function onOk() {
if (dialogContent.value._brand === "dehumidify_complete") { if (dialogContent.value._brand === "dehumidify_complete") {
router.push("/spray"); router.push("/spray");
} else if (dialogContent.value._brand === "spray_complete") { } else if (dialogContent.value._brand === "spray_complete") {
router.replace("/home");
pushOutTray({}).then(res => {
if (res.success) {
ElMessage.success("正在推出");
} else {
ElMessage.error(res.msg);
}
});
} }
} }
</script> </script>

2
src/components/FooterBar.vue

@ -65,6 +65,7 @@ function onPushTrayClick() {
if (isTrayOutside.value) { if (isTrayOutside.value) {
pushInTray({}).then(res => { pushInTray({}).then(res => {
if (res.success) { if (res.success) {
ElMessage.success("正在推入");
} else { } else {
ElMessage.error(res.msg); ElMessage.error(res.msg);
} }
@ -72,6 +73,7 @@ function onPushTrayClick() {
} else if (isTrayInside.value) { } else if (isTrayInside.value) {
pushOutTray({}).then(res => { pushOutTray({}).then(res => {
if (res.success) { if (res.success) {
ElMessage.success("正在推出");
} else { } else {
ElMessage.error(res.msg); ElMessage.error(res.msg);
} }

20
src/components/Spray.vue

@ -5,7 +5,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, useTemplateRef } from "vue";
import { onMounted, useTemplateRef, watch } from "vue";
import { BehaviorSubject, distinctUntilChanged, skip } from "rxjs"; import { BehaviorSubject, distinctUntilChanged, skip } from "rxjs";
import gripper from "@/assets/gripper.png"; import gripper from "@/assets/gripper.png";
@ -36,12 +36,19 @@ const props = defineProps<{
columns: number; columns: number;
rows: number; rows: number;
cellNum: number; cellNum: number;
hideGripper?: boolean;
}>(); }>();
const emit = defineEmits<{ const emit = defineEmits<{
(e: "selectArea", area: GridArea): void; (e: "selectArea", area: GridArea): void;
}>(); }>();
watch(
() => props.hideGripper,
val => {
draw(selectArea);
}
);
const canvas = useTemplateRef("cnv"); const canvas = useTemplateRef("cnv");
const primaryLineColor = "rgb(203,213,245)"; const primaryLineColor = "rgb(203,213,245)";
const subLineColor = "rgb(226,231,232)"; const subLineColor = "rgb(226,231,232)";
@ -80,7 +87,7 @@ moveSubject
} else if (touchedElem === "Gripper") { } else if (touchedElem === "Gripper") {
newArea = applyIncrement(val, selectArea); newArea = applyIncrement(val, selectArea);
} }
newArea && emit("selectArea", newArea);
newArea && emit("selectArea", newArea);
newArea && draw(newArea); newArea && draw(newArea);
}); });
@ -204,6 +211,7 @@ function drawDragLayer(ctx: CanvasRenderingContext2D, area: GridArea) {
function handleStart(event: MouseEvent | TouchEvent) { function handleStart(event: MouseEvent | TouchEvent) {
event.stopPropagation(); event.stopPropagation();
if (!!props.hideGripper) return;
if ("touches" in event) { if ("touches" in event) {
const touchEvent = event.touches[0]; const touchEvent = event.touches[0];
touchPoint.x = touchEvent.pageX - canvas.value!.offsetLeft; touchPoint.x = touchEvent.pageX - canvas.value!.offsetLeft;
@ -268,10 +276,14 @@ function draw(area: GridArea) {
if (!imgLoaded) { if (!imgLoaded) {
gripperImg.onload = () => { gripperImg.onload = () => {
imgLoaded = true; imgLoaded = true;
drawDragLayer(ctx, area);
if (!props.hideGripper) {
drawDragLayer(ctx, area);
}
}; };
} else { } else {
drawDragLayer(ctx, area);
if (!props.hideGripper) {
drawDragLayer(ctx, area);
}
} }
} }
} }

1
src/views/HomeView.vue

@ -125,6 +125,7 @@ function onStartWash(type: WashType) {
showWashDialog.value = false; showWashDialog.value = false;
startWash({ type }).then(res => { startWash({ type }).then(res => {
if (res.success) { if (res.success) {
ElMessage.success("已经开始清洗");
} else { } else {
ElMessage.error(res.msg); ElMessage.error(res.msg);
} }

3
src/views/PreSpray.vue

@ -171,6 +171,7 @@ function onOk() {
if (dialogContent.value._brand === "start_dehumidify") { if (dialogContent.value._brand === "start_dehumidify") {
startDehumidify({ humidity: humidity.value! }).then(res => { startDehumidify({ humidity: humidity.value! }).then(res => {
if (res.success) { if (res.success) {
ElMessage.success("已经开始除湿");
} else { } else {
ElMessage.error(res.msg); ElMessage.error(res.msg);
} }
@ -191,6 +192,7 @@ function onGoSpray() {
function onStartWash(type: WashType) { function onStartWash(type: WashType) {
startWash({ type }).then(res => { startWash({ type }).then(res => {
if (res.success) { if (res.success) {
ElMessage.success("已经开始清洗");
} else { } else {
ElMessage.error(res.msg); ElMessage.error(res.msg);
} }
@ -209,6 +211,7 @@ function onStopWash() {
function onStartPrefill() { function onStartPrefill() {
startPrefill({}).then(res => { startPrefill({}).then(res => {
if (res.success) { if (res.success) {
ElMessage.success("已经开始预充");
} else { } else {
ElMessage.error(res.msg); ElMessage.error(res.msg);
} }

5
src/views/SprayView.vue

@ -63,6 +63,7 @@
:columns="1" :columns="1"
:rows="3" :rows="3"
:cell-num="25" :cell-num="25"
:hideGripper="!checked.find(c => c === '0')"
@select-area="area => onSelectArea(area, 0)" /> @select-area="area => onSelectArea(area, 0)" />
<Spray <Spray
:width="210" :width="210"
@ -74,6 +75,7 @@
:columns="1" :columns="1"
:rows="3" :rows="3"
:cell-num="25" :cell-num="25"
:hideGripper="!checked.find(c => c === '1')"
@select-area="area => onSelectArea(area, 1)" /> @select-area="area => onSelectArea(area, 1)" />
<Spray <Spray
:width="210" :width="210"
@ -85,6 +87,7 @@
:columns="1" :columns="1"
:rows="3" :rows="3"
:cell-num="25" :cell-num="25"
:hideGripper="!checked.find(c => c === '2')"
@select-area="area => onSelectArea(area, 2)" /> @select-area="area => onSelectArea(area, 2)" />
<Spray <Spray
:width="210" :width="210"
@ -96,6 +99,7 @@
:columns="1" :columns="1"
:rows="3" :rows="3"
:cell-num="25" :cell-num="25"
:hideGripper="!checked.find(c => c === '3')"
@select-area="area => onSelectArea(area, 3)" /> @select-area="area => onSelectArea(area, 3)" />
</section> </section>
@ -236,6 +240,7 @@ function onStartSpray() {
matrixCraftId: selectCraft.value.id || 0, matrixCraftId: selectCraft.value.id || 0,
}).then(res => { }).then(res => {
if (res.success) { if (res.success) {
ElMessage.success("已经开始喷涂");
} else { } else {
ElMessage.error(res.msg); ElMessage.error(res.msg);
} }

Loading…
Cancel
Save