dengzedong
2024-11-06 31bb5fe0278d2f8132c535f8129354bfad56b7b1
src/views/data/channel/opcda/tag/index.vue
@@ -58,6 +58,12 @@
            <Icon icon="ep:download" />导出
          </el-button>
        </el-form-item>
        <el-form-item label="更新当前值" label-width="100px">
          <el-switch
            v-model="queryParams.currentValue"
            active-color="#13ce66"
            inactive-color="#ff4949"/>
        </el-form-item>
      </el-form>
    </ContentWrap>
    <!-- 列表 -->
@@ -85,6 +91,24 @@
          <template #default="scope">
            <el-tag v-if="scope.row.enabled === 1" size="small">是</el-tag>
            <el-tag v-else size="small" type="danger">否</el-tag>
          </template>
        </el-table-column>
        <el-table-column
          prop="dataValue"
          label="数据值"
          header-align="center"
          align="center"
          :formatter="(row) => {if (row.dataValue === -2.0) {return '--';}return row.dataValue;}"
        />
        <el-table-column
          prop="quality"
          label="数据质量"
          header-align="center"
          align="center"
        >
          <template #default="scope">
            <el-tag v-if="scope.row.dataValue === Number(-2.0)" type="danger" size="small">bad</el-tag>
            <el-tag v-else size="small">good</el-tag>
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" min-width="110" fixed="right">
@@ -128,6 +152,8 @@
  import download from "@/utils/download";
  import {ref,reactive} from "vue";
  import TagImportForm from '../../common/tag/TagImportForm.vue'
  import {onBeforeUnmount, onMounted} from "vue";
  import * as OpcdaTagApi from "@/api/data/channel/opcda/tag";
  defineOptions({name: 'ModBusTag'})
@@ -145,9 +171,11 @@
    serverId: undefined,
    tagName: undefined,
    serverName: undefined
    currentValue:false,
  })
  const queryFormRef = ref() // 搜索的表单
  const exportLoading = ref(false) // 导出的加载中
  /** 查询列表 */
  const getList = async () => {
    loading.value = true
@@ -238,4 +266,23 @@
      exportLoading.value = false
    }
  }
  let intervalId;
  onMounted(async () => {
    // 创建定时器
    intervalId = setInterval(async () => {
      if(queryParams.currentValue){
        const page = await OpcdaTagApi.getOpcdaTagPage(queryParams)
        list.value = page.list
        total.value = page.total
      }
    }, 10000);
  });
  // 在组件卸载时清除定时器
  onBeforeUnmount(() => {
    if (intervalId) {
      clearInterval(intervalId);
    }
  });
</script>