yangfeng
2023-12-12 1519870c0e18171ced014a840e86a459dc6b00f1
src/views/dashboard/index.vue
@@ -16,7 +16,7 @@
        </el-tab-pane>
        <el-tab-pane label="工艺信息" name="工艺信息">
          <div style="height: 300px">
            <el-scrollbar always style="height: 100%">
            <el-scrollbar always class="scroller" style="height: 100%">
              <div
                v-infinite-scroll="craftModelStore.loadMore"
                infinite-scroll-delay="500"
@@ -38,7 +38,7 @@
                  <Loading />
                </el-icon>
                <div v-if="!craftModelStore.hasMore">加载完成</div>
                <div v-if="!craftModelStore.hasMore && craftModelStore.craftModelList.length > 6">加载完成</div>
              </div>
            </el-scrollbar>
          </div>
@@ -58,7 +58,7 @@
    <template #middleBlock3>
      <SubTitle>任务详情</SubTitle>
      <div class="task-detail">
        <TaskControl :task="activeTask" @should-reload="reloadChannel"></TaskControl>
        <TaskControl :task="activeTask" :workers="currentWorkers" @should-reload="reloadChannel"></TaskControl>
      </div>
      <ColorInfo :type="1"></ColorInfo>
      <ColorInfo :type="2"></ColorInfo>
@@ -96,7 +96,7 @@
import { computed, ref } from 'vue'
import ChannelCollapse from '@/views/dashboard/components/ChannelCollapse.vue'
import type { Worker, Order, Task, Material } from '@/api/task'
import type { Task, Material } from '@/api/task'
import type { CraftModel } from '@/api/craftModel'
import PersonInfo from '@/views/dashboard/components/PersonInfo.vue'
import ProcessInfo from '@/views/dashboard/components/ProcessInfo.vue'
@@ -124,6 +124,7 @@
import { updateCraftParams } from '@/api'
import { Loading } from '@element-plus/icons-vue'
import { isNumber } from 'lodash-es'
defineOptions({
  name: 'DashboardView'
@@ -154,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)
@@ -165,11 +166,14 @@
 * @param task
 */
function reloadChannel(task: Task) {
  tasksStore.reloadChannel(task.Channel)
  tasksStore.reloadChannel(task.Channel).then(() => {
    plcStore.startPollingPLC()
  })
}
function reloadAllData() {
  tasksStore.reloadAllData()
  location.reload()
}
// 启动plc 轮询
const plcStore = usePLCStore()
@@ -185,7 +189,7 @@
const showCraftModelDetail = ref(false)
// 当前要展示的工艺详情
const currentCraftModelInfo = ref<CraftModel>()
const activeArr = ref([])
const activeArr = ref<string[]>([])
function openCraftModelDetailModal(craftModel: CraftModel) {
  currentCraftModelInfo.value = craftModel
  showCraftModelDetail.value = true
@@ -202,13 +206,14 @@
            message: '更新成功!',
            type: 'success'
          })
          craftModelStore.getCraftModelList()
        }
      },
      (err) => {
        console.error(err, '----err')
        setTimeout(() => {
          editActive(craftModel)
        }, 500)
        }, 300)
      }
    )
  }
@@ -216,7 +221,7 @@
function editActive(craftModel: CraftModel) {
  for (let i in activeArr.value) {
    if (activeArr.value[i] == craftModel.number) {
      activeArr.value.splice(i, 1)
      activeArr.value.splice(Number(i), 1)
    }
  }
}
@@ -234,6 +239,15 @@
  currentMaterialInfo.value = material
  showMaterialDetail.value = true
}
const currentWorkers = computed(() => {
  const channel = activeTask.value?.Channel
  if (isNumber(channel)) {
    return channels.value[channel].workers ?? []
  } else {
    return []
  }
})
</script>
<style scoped lang="scss">
@@ -290,4 +304,7 @@
  align-items: center;
  justify-content: center;
}
.scroller {
  padding: 4px 16px;
}
</style>