Pārlūkot izejas kodu

fix(fulllink): display without mesh data

Casper Dai 2 gadi atpakaļ
vecāks
revīzija
8261e5f83b
1 mainītis faili ar 47 papildinājumiem un 35 dzēšanām
  1. 47 35
      src/components/service/FullLink/index.vue

+ 47 - 35
src/components/service/FullLink/index.vue

@@ -4,50 +4,58 @@
     v-loading="!loaded"
     element-loading-background="transparent"
   >
-    <div
-      v-if="loaded"
-      class="c-link-state l-flex--row"
-      :class="className"
-    >
+    <template v-if="loaded">
       <div
-        class="c-link-state__main"
-        :style="styles"
+        v-if="linkDeviceMap"
+        class="c-link-state l-flex--row"
+        :class="className"
       >
         <div
-          v-for="item in items"
-          :key="item.key"
-          class="o-link-item"
-          :class="item.className"
-          @click="onClick(item)"
+          class="c-link-state__main"
+          :style="styles"
         >
           <div
-            v-if="item.status !== -2"
-            class="o-link-item__name"
+            v-for="item in items"
+            :key="item.key"
+            class="o-link-item"
+            :class="item.className"
+            @click="onClick(item)"
           >
-            {{ item.label }}
+            <div
+              v-if="item.status !== -2"
+              class="o-link-item__name"
+            >
+              {{ item.label }}
+            </div>
+            <template v-if="item.key === 'led'">
+              <device-player
+                :device="led"
+                autoplay
+                retry
+                keep
+              />
+              <i
+                v-if="led.powerStatus"
+                class="o-link-item__status"
+                :class="led.powerStatus"
+              />
+            </template>
           </div>
-          <template v-if="item.key === 'led'">
-            <device-player
-              :device="led"
-              autoplay
-              retry
-              keep
-            />
-            <i
-              v-if="led.powerStatus"
-              class="o-link-item__status"
-              :class="led.powerStatus"
-            />
-          </template>
+          <div
+            v-for="line in lines"
+            :key="line.key"
+            class="o-line"
+            :class="line.className"
+          />
         </div>
-        <div
-          v-for="line in lines"
-          :key="line.key"
-          class="o-line"
-          :class="line.className"
-        />
       </div>
-    </div>
+      <div
+        v-else
+        class="l-flex--row center"
+      >
+        <el-empty description="暂无相关配置" />
+      </div>
+    </template>
     <slot />
   </div>
 </template>
@@ -304,6 +312,10 @@ export default {
         ], { custom: true }),
         Promise.resolve(this.$multiCard)
       ]).then(([{ data: nodes }, multiCard]) => {
+        if (!nodes.length) {
+          this.loaded = true
+          return
+        }
         this.$deviceTypes = []
         const linkDeviceMap = {}
         const by = [ThirdPartyDevice.BOX]