From e895212fa4215c50ce79ce4b448e064caf394776 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 03 七月 2025 17:35:46 +0800
Subject: [PATCH] 2025.7.3 动态溯源(待完成)

---
 src/components/monitor/FactorRadio.vue |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 51 insertions(+), 4 deletions(-)

diff --git a/src/components/monitor/FactorRadio.vue b/src/components/monitor/FactorRadio.vue
index f77cf2f..e95e72d 100644
--- a/src/components/monitor/FactorRadio.vue
+++ b/src/components/monitor/FactorRadio.vue
@@ -1,7 +1,7 @@
 <template>
   <BaseCard>
     <template #content>
-      <el-radio-group v-model="radio">
+      <el-radio-group v-model="radio" size="default" @change="handleChange">
         <el-radio v-for="(item, i) in options" :key="i" :value="item.value">{{
           item.label
         }}</el-radio>
@@ -12,13 +12,60 @@
 
 <script>
 // 鐩戞祴鍥犲瓙鍗曢�夋
-import { radioOptions } from '@/constant/radio-options';
+import { radioOptions, defaultOptions } from '@/constant/radio-options';
+import { TYPE0 } from '@/constant/device-type';
+
 export default {
+  props: {
+    modelValue: {
+      type: String,
+      default: defaultOptions(TYPE0).value
+    },
+    deviceType: {
+      type: String,
+      // type0: 杞﹁浇鎴栨棤浜烘満; type1:鏃犱汉鑸�
+      default: TYPE0
+    }
+  },
+  emits: ['change', 'update:modelValue'],
   data() {
     return {
-      radio: radioOptions.type0[0].value,
-      options: radioOptions.type0
+      radio: defaultOptions(TYPE0).value
     };
+  },
+  computed: {
+    options() {
+      return radioOptions(this.deviceType);
+    }
+  },
+  watch: {
+    deviceType(nV, oV) {
+      if (nV != oV) {
+        this.radio = this.options[0].value;
+        this.$emit('update:modelValue', this.radio)
+      }
+    },
+    modelValue(nV, oV){
+      if (nV != oV) {
+        this.radio = nV
+      }
+    }
+  },
+  methods: {
+    handleChange(value) {
+      const item = this.options.find((v) => v.value == value);
+      this.$emit('change', item.value, item);
+      this.$emit('update:modelValue', item.value)
+      // todo 鍦板浘3d鍥惧儚鍒囨崲灞曠ず鐩戞祴鍥犲瓙
+    }
   }
 };
 </script>
+<style scoped>
+.el-radio {
+  --el-radio-text-color: white;
+  --el-color-primary: #23dad1;
+  margin-right: 10px;
+  height: initial;
+}
+</style>

--
Gitblit v1.9.3