2023-09-15 10:53:23 +08:00
|
|
|
<template>
|
2023-09-15 19:32:13 +08:00
|
|
|
<div class="absolute inset-0 px-4 pb-4 h-full overflow-hidden">
|
2023-10-12 17:35:27 +08:00
|
|
|
<el-tabs v-model="activeTab" class="el-tabs-flex" @tab-change="onTabChange">
|
2023-09-15 19:32:13 +08:00
|
|
|
<el-tab-pane
|
|
|
|
v-for="(item, index) of tabsModel"
|
|
|
|
:key="index"
|
|
|
|
:label="item.label"
|
|
|
|
:name="item.prop"
|
2023-09-16 18:04:14 +08:00
|
|
|
lazy
|
2023-09-15 10:53:23 +08:00
|
|
|
>
|
2023-10-19 11:44:17 +08:00
|
|
|
<component :is="item.prop" v-if="isRender(item)" :ref="item.prop" />
|
2023-09-15 19:32:13 +08:00
|
|
|
</el-tab-pane>
|
|
|
|
</el-tabs>
|
2023-09-15 10:53:23 +08:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
2023-09-15 19:32:13 +08:00
|
|
|
<script>
|
2023-10-18 19:23:00 +08:00
|
|
|
import Device from './components/Device/index.vue'
|
|
|
|
import Preference from './components/Preference/index.vue'
|
|
|
|
import About from './components/About/index.vue'
|
2023-09-15 19:32:13 +08:00
|
|
|
|
|
|
|
export default {
|
|
|
|
components: {
|
2023-10-18 19:23:00 +08:00
|
|
|
Device,
|
|
|
|
Preference,
|
|
|
|
About,
|
2023-09-15 19:32:13 +08:00
|
|
|
},
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
tabsModel: [
|
|
|
|
{
|
2023-09-18 15:07:28 +08:00
|
|
|
label: '设备列表',
|
2023-10-18 19:23:00 +08:00
|
|
|
prop: 'Device',
|
2023-09-15 19:32:13 +08:00
|
|
|
},
|
|
|
|
{
|
2023-10-18 19:23:00 +08:00
|
|
|
label: '偏好设置',
|
|
|
|
prop: 'Preference',
|
2023-09-15 19:32:13 +08:00
|
|
|
},
|
2023-10-11 18:54:41 +08:00
|
|
|
{
|
2023-10-12 09:10:56 +08:00
|
|
|
label: '关于',
|
2023-10-18 19:23:00 +08:00
|
|
|
prop: 'About',
|
2023-10-11 18:54:41 +08:00
|
|
|
},
|
2023-09-15 19:32:13 +08:00
|
|
|
],
|
2023-10-18 19:23:00 +08:00
|
|
|
activeTab: 'Device',
|
2023-10-19 11:44:17 +08:00
|
|
|
rendered: true,
|
2023-09-15 19:32:13 +08:00
|
|
|
}
|
|
|
|
},
|
2023-10-12 17:35:27 +08:00
|
|
|
created() {
|
|
|
|
this.$store.scrcpy.init()
|
|
|
|
},
|
|
|
|
methods: {
|
2023-10-19 11:44:17 +08:00
|
|
|
isRender(item) {
|
|
|
|
if (this.activeTab === item.prop) {
|
|
|
|
return this.rendered
|
|
|
|
}
|
|
|
|
return true
|
|
|
|
},
|
|
|
|
async reRender() {
|
|
|
|
this.rendered = false
|
|
|
|
await this.$nextTick()
|
|
|
|
this.rendered = true
|
|
|
|
},
|
|
|
|
async onTabChange(prop) {
|
|
|
|
switch (prop) {
|
|
|
|
case 'Device':
|
|
|
|
this.reRender()
|
|
|
|
break
|
|
|
|
}
|
|
|
|
},
|
2023-10-12 17:35:27 +08:00
|
|
|
},
|
2023-09-15 19:32:13 +08:00
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style></style>
|