|
|
@@ -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]
|