From 985befd1aacce206d49925399aba85a51c50ea6e Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期二, 28 十一月 2023 17:20:03 +0800
Subject: [PATCH] feat: 下发后重连plc
---
src/views/dashboard/index.vue | 6 ++++--
src/stores/tasks.ts | 17 +++++++++++++----
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/src/stores/tasks.ts b/src/stores/tasks.ts
index 6ebd205..33df9a7 100644
--- a/src/stores/tasks.ts
+++ b/src/stores/tasks.ts
@@ -3,6 +3,7 @@
import type { Task, TasksGroupByChannel, TasksResponse } from '@/api/task'
import type { TaskListParams } from '@/api'
import { getTaskList } from '@/api'
+import { isNumber } from 'lodash-es'
export interface ChannelMoreBtnStatus {
/** true 浠诲姟鏈姞杞藉畬 false 鎵�鏈変换鍔″凡缁忓姞杞藉畬鎴�*/
@@ -17,8 +18,9 @@
/**
* 鑾峰彇浠诲姟鏁版嵁
* @param type 1鏈畬鎴�2浠婂ぉ鏈畬鎴�3宸插畬鎴�
+ * @param init 鏄惁鏄娆¤幏鍙�,棣栨闇�瑕侀�変腑绗竴椤逛换鍔�
*/
- function getChannels(type: 1 | 2 | 3) {
+ function getChannels(type: 1 | 2 | 3, init = false) {
currentType.value = type
const params: TaskListParams = {
type,
@@ -34,8 +36,10 @@
channels.value = []
})
.finally(() => {
- // 棣栨鑾峰彇閫氶亾鏁版嵁鏃惰嚜鍔ㄩ�変腑绗竴涓换鍔�
- selectFirstTask(channels.value)
+ if (init) {
+ // 棣栨鑾峰彇閫氶亾鏁版嵁鏃惰嚜鍔ㄩ�変腑绗竴涓换鍔�
+ selectFirstTask(channels.value)
+ }
})
}
@@ -66,6 +70,7 @@
const currentChannelTaskList = channels.value[channel].Tasks
if (currentChannelTaskList?.length) {
activeTask.value = currentChannelTaskList[0]
+ setActiveChannel(channel)
} else {
const firstNotEmptyChannel = Object.entries(channels.value).find((ele) => {
const taskList = (ele[1] as TasksResponse)?.Tasks
@@ -76,6 +81,7 @@
if (firstNotEmptyChannel) {
const channelNumber = +firstNotEmptyChannel[0]
activeTask.value = channels.value[channelNumber].Tasks[0]
+ setActiveChannel(channel)
}
}
}
@@ -84,7 +90,7 @@
* 鍒锋柊鎵�鏈夋暟鎹�
*/
function reloadChannel(channel: number) {
- getChannels(currentType.value).then(() => {
+ return getChannels(currentType.value).then(() => {
autoSelectTask(channel)
})
}
@@ -131,6 +137,9 @@
const activeTask = ref<Task>()
function setActiveTask(task: Task | undefined) {
activeTask.value = task
+ if (isNumber(task?.Channel)) {
+ setActiveChannel(task?.Channel as number)
+ }
}
const activeChannel = ref<number>(0)
diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue
index 2ffecc5..e8c7ee5 100644
--- a/src/views/dashboard/index.vue
+++ b/src/views/dashboard/index.vue
@@ -155,7 +155,7 @@
const tasksStore = useTasksStore()
const { activeTask, channels } = storeToRefs(tasksStore)
-tasksStore.getChannels(1)
+tasksStore.getChannels(1, true)
function changeTab(tab: LabelValue) {
tasksStore.getChannels(tab.value)
@@ -166,7 +166,9 @@
* @param task
*/
function reloadChannel(task: Task) {
- tasksStore.reloadChannel(task.Channel)
+ tasksStore.reloadChannel(task.Channel).then(() => {
+ plcStore.startPollingPLC()
+ })
}
function reloadAllData() {
--
Gitblit v1.8.0