dongyukun
2024-11-11 e1e01358530ea0cae9bd09aab1b6e2c371f2dd1c
src/views/data/channel/opcua/tag/index.vue
@@ -67,6 +67,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>
    <!-- 列表 -->
@@ -165,8 +171,9 @@
  import * as OpcUaTagApi from "@/api/data/channel/opcua/tag";
  import TagForm from './TagForm.vue'
  import download from "@/utils/download";
  import {ref,reactive} from "vue";
  import {ref, reactive, onMounted, onBeforeUnmount} from "vue";
  import TagImportForm from '../../common/tag/TagImportForm.vue'
  import * as OpcdaTagApi from "@/api/data/channel/opcda/tag";
  defineOptions({name: 'OpcuaTag'})
@@ -184,6 +191,7 @@
    device: undefined,
    deviceId: undefined,
    tagName: undefined,
    currentValue:false,
    address: undefined
  })
  const queryFormRef = ref() // 搜索的表单
@@ -280,4 +288,24 @@
      exportLoading.value = false
    }
  }
  let intervalId;
  onMounted(async () => {
    // 创建定时器
    intervalId = setInterval(async () => {
      if(queryParams.currentValue){
        const page = await OpcUaTagApi.getOpcuaTagPage(queryParams)
        list.value = page.list
        total.value = page.total
      }
    }, 10000);
  });
  // 在组件卸载时清除定时器
  onBeforeUnmount(() => {
    if (intervalId) {
      clearInterval(intervalId);
    }
  });
</script>